Hibernate аннотации с использованием @PrimaryKeyJoinColumn - PullRequest
0 голосов
/ 25 марта 2011

Я использую аннотации в спящем режиме в своем приложении. Но у меня одна проблема.

класс А

@Entity
@Table(name = DBConstants.T_A )
@Inheritance(strategy=InheritanceType.JOINED)
public class A {

   //Id
    @Column(name = "id")
    @GeneratedValue(generator = A_SEQ)
    @SequenceGenerator(name = A_SEQ, sequenceName=SeqA_SEQ)
    private long id;

   ....
}

класс B

//Entity
@Table(name = "T_B")
@PrimaryKeyJoinColumn(name = "a_id")
public class B extends A{

   String a;
 .....
}

класс С

@Entity
@Table(name = "T_C")
@PrimaryKeyJoinColumn(name = "a_id")
public class C extends B
{
...
}

Изначально я сохраняю class A. Через некоторое время при сохранении class C я установил класс A id, который был сохранен уже . При попытке сохранить класс C он создает новый объект class A и устанавливает значение этого вновь созданного объекта в объект класса C. Мне нужен объект class C с идентификатором объекта class A, который создается вначале.

Я не понимаю, почему новый объект class A создается снова. Может кто-нибудь ответить на мой вопрос, что пошло не так?

1 Ответ

0 голосов
/ 25 марта 2011

Поскольку вы хотите, чтобы C имел тот же идентификатор, что и объект A, который уже существует, на самом деле это не наследование сущности.

В основном вам нужна ссылка на существующий объект, и вы должны использовать @OneToOne Отношение к карте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...