У меня есть следующие 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 или я должен удалить ее самостоятельно?