Проблема обновления Hibernate Inheritance - PullRequest
0 голосов
/ 31 августа 2011

У меня есть следующие Pojos:

@Entity
@Table(name = "COMMUNICATION")
@Audited
public class CommunicationPojo
    implements Serializable
{
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "TRANSMISSION_TYPE", nullable = false, unique = true)
    private TransmissionTypePojo transmissionType;
}


@Entity
@Table(name = "TRANSMISSION_TYPE")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Audited
public abstract class TransmissionTypePojo
    implements Serializable
{
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
        private long id;
    @OneToOne(mappedBy= "transmissionType")
    private CommunicationPojo communication;
}


@Entity
@Table(name = "TRANSMISSION_TYPE_AS2")
@Audited
public class TransmissionTypeAS2Pojo
    extends TransmissionTypePojo
    implements Serializable
{}

@Entity
@Table(name = "TRANSMISSION_TYPE_MAIL")
@Audited
public class TransmissionTypeMailPojo
    extends TransmissionTypePojo
    implements Serializable
{}

Если при сохранении экземпляра связи с экземпляром TRANSMISSION_TYPE_MAIL изменили экземпляр связи, чтобы вместо экземпляра TRANSMISSION_TYPE_ASIL он содержал экземпляр TRANSMISSION_TYPE_MAIL, и обновил связьhibernate вставит запись в TRANSMISSION_TYPE_AS2, но не удалит старую запись в TRANSMISSION_TYPE_MAIL.Можно ли автоматически удалить старую запись с помощью hibernate или я должен удалить ее самостоятельно?

1 Ответ

0 голосов
/ 31 августа 2011

Вы можете добавить orphanRemoval=true к аннотации OneToOne communication.

Обратите внимание, что это не имеет ничего общего с наследованием.

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