powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Пару тупых вопросов по hibernate
8 сообщений из 8, страница 1 из 1
Пару тупых вопросов по hibernate
    #34896492
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

1. Есть пара сущностей - UsPersonCard и UsFlatAccount, которая
@ManyToOne к первой (правильно я понял? На одну UsPersonCard может быть
куча UsFlatAccount).
Как имея (загруженный) UsPersonCard получить все "подчинённые" записи из
UsFlatAccount в список?

2. В БД (oracle) есть sequence для генерации id и есть функция-обёртка.
Как подключить это к id?
Пробую
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
   @Id
   @Column(name= "us_person_id")
   @GeneratedValue(strategy = GenerationType.SEQUENCE, 
generator="fUsCrUnKey")
   //@GeneratedValue(strategy = GenerationType.SEQUENCE, 
generator="fUs_CrUn_Key")  // Это функция в БД
   ..@GeneratedValue(strategy = GenerationType.SEQUENCE, 
generator="Us_Seq")  // Это собственно sequence
   private BigDecimal usPersonId;

   @GenericGenerator(name="fUsCrUnKey", strategy = "uuid")
   public BigDecimal fUsCrUnKey() {
     ...
   }
получаю
Код: plaintext
1.
2.
3.
4.
Exception in thread "main" java.lang.ExceptionInInitializerError
	at ...
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: 
fUsCrUnKey

Причём при любом из трёх вариантов

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Пару тупых вопросов по hibernate
    #34896551
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. В БД (oracle) есть sequence для генерации id и есть функция-обёртка.
Как подключить это к id?

Вот ещё попробовал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
@Entity
@javax.persistence.SequenceGenerator(name="fUsCrUnKey", 
sequenceName="fUsCrUnKey")
public class UsSeq implements Serializable {
   private static final long serialVersionUID = -176552632212019593L;
   private Long id;

   @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, 
generator="fUsCrUnKey")
   public Long getId() {
     return id;
   }
}

Та же фигня.

PS: а Entity должно быть javax.persistence.Entity или
org.hibernate.annotations.Entity?

PPS: Версии:
hibernate-3.2.5
hibernate-annotations-3.3.0

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Пару тупых вопросов по hibernate
    #34896557
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
@Entity
@javax.persistence.SequenceGenerator(name="SEQ_STORE", sequenceName="my_sequence")
 public   class  SomeClass{

     private  String id;

...
    @Id @GeneratedValue(strategy=javax.persistence.GenerationType.SEQUENCE, generator="SEQ_STORE")
     public  String getId() {
         return  id;
    }

     public   void  setId(String id) {
         this .id = id;
    }
...

}
...
Рейтинг: 0 / 0
Пару тупых вопросов по hibernate
    #34896690
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexakaа если так...

Понял, прошло :)

Ещё вопрос- а как мне все же сделать id типа BigDecimal?
Если я пишу
Код: plaintext
1.
2.
3.
   @Id
   ...
   private BigDecimal usPersonId;
то получаю
Код: plaintext
1.
2.
3.
Exception in thread "main" 
org.hibernate.id.IdentifierGenerationException: this id generator 
generates long, integer, short or string

Если
Код: plaintext
1.
2.
3.
   @Id
   ...
   private String usPersonId;
то
Код: plaintext
1.
2.
Exception in thread "main" java.lang.ClassCastException: 
java.lang.String cannot be cast to java.lang.Number

А писать Long - проходит, но не хочу, ибо никто number на number(19) не
заменит, а быть готовым к любым вариантам, в т.ч. сдвигу sequence :(

Как скрестить ужа с ежом в данном случае?

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Пару тупых вопросов по hibernate
    #34896764
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexakа если так...
Ой!
Ещё раз работающий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@Entity
@Table(name= "us_person_card")
@javax.persistence.SequenceGenerator(name="fUsCrUnKey", sequenceName="Us_Seq")
public class UsPersonCard {
   ......................
   @Id
   @Column(name= "us_person_id")
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="fUsCrUnKey")
   private Long usPersonId;
}
...................
     for(int i= 0 ; i< 3 ; i++) {
       UsPersonCard pc = new UsPersonCard();
       session.saveOrUpdate(pc);
     }
...................

Всё работает, id генерятся, но какие-то не от мира сего.
sequence "Us_Seq" как была на 1606, так и остаётся, а у новых записей id идут
79700, 79701, 79702

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Пару тупых вопросов по hibernate
    #34896790
Ekshibarov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GKS_Samara
zalexakа если так...
Ой!
Ещё раз работающий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@Entity
@Table(name= "us_person_card")
@javax.persistence.SequenceGenerator(name="fUsCrUnKey", sequenceName="Us_Seq")
public class UsPersonCard {
   ......................
   @Id
   @Column(name= "us_person_id")
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="fUsCrUnKey")
   private Long usPersonId;
}
...................
     for(int i= 0 ; i< 3 ; i++) {
       UsPersonCard pc = new UsPersonCard();
       session.saveOrUpdate(pc);
     }
...................

Всё работает, id генерятся, но какие-то не от мира сего.
sequence "Us_Seq" как была на 1606, так и остаётся, а у новых записей id идут
79700, 79701, 79702

--
Алексей
Posted via ActualForum NNTP Server 1.4

Сделай:
Код: plaintext
1.
@javax.persistence.SequenceGenerator(name="fUsCrUnKey", sequenceName="Us_Seq",allocationSize= 1 )
...
Рейтинг: 0 / 0
Пару тупых вопросов по hibernate
    #34896941
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ekshibarov VladimirСделай:
Код: plaintext
@javax.persistence.SequenceGenerator(name="fUsCrUnKey", sequenceName="Us_Seq",allocationSize=* 1 *)


Ага, помогло.
А первый вопрос- как получить все child записи по master?

Какую книжку почитать, где неторопясь рассказывается про всё это, причём с аннотациями, а не отдельными файлами?
Или сайт какой...
А то есть либо по старой версии , без аннотаций, либо про
новую, но пунктирно очень .

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Пару тупых вопросов по hibernate
    #34897799
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraА первый вопрос- как получить все child записи по master?

Докурил документацию- дошло как.

Осталось понять, как генерить number(38) id-шники.
Идея о том, что number(19) (64-битный int) за глаза так и не смогла проникнуть в мозги соседей

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Пару тупых вопросов по hibernate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]