Я хотел бы удалить все строки в tbl_license_user_alert при удалении лицензии или пользователя: http://www.img -teufel.de / uploads / Unbenannt1d4f8a349jpg.jpg
Где мне нужно установить каскад?
Каскадный атрибут или @Cascade Annotation?
Какой CascadeStyle мне нужен для этой цели?
@Entity
@Table( name = "tbl_license" )
public class License implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column( name = "id", nullable = false, columnDefinition = "serial" )
private int id;
@OneToMany( fetch = FetchType.LAZY, mappedBy = "id.license" )
private List<LicenseUserAlert> alerts;
// getter + setter
}
@Entity
@Table( name = "tbl_license_user_alert" )
@AssociationOverrides({
@AssociationOverride( name = "id.user", joinColumns = @JoinColumn( name = "user_id", columnDefinition = "int" ) ),
@AssociationOverride( name = "id.license", joinColumns = @JoinColumn( name = "license_id", columnDefinition = "int" ) )
})
public class LicenseUserAlert implements Serializable
{
private static final long serialVersionUID = 1L;
@EmbeddedId
private LicenseUserAlertId id;
@Column( name = "timer", columnDefinition = "int default 86400" )
private int timer = 86400;
public LicenseUserAlertId getId()
{
return id;
}
public void setId( LicenseUserAlertId id )
{
this.id = id;
}
@Transient
public License getLicense()
{
return id.getLicense();
}
public void setLicense( License license )
{
id.setLicense( license );
}
@Transient
public User getUser()
{
return id.getUser();
}
public void setUser( User user )
{
id.setUser( user );
}
public int getTimer()
{
return timer;
}
public void setTimer( int timer )
{
this.timer = timer;
}
}
@Embeddable
public class LicenseUserAlertId implements Serializable
{
private static final long serialVersionUID = 1L;
@ManyToOne
@ForeignKey( name = "tbl_license_fkey" )
private License license;
@ManyToOne
@ForeignKey( name = "tbl_user_fkey" )
private User user;
public LicenseUserAlertId( License license, User user )
{
this.license = license;
this.user = user;
}
public LicenseUserAlertId()
{
}
public License getLicense()
{
return license;
}
public void setLicense( License license )
{
this.license = license;
}
public User getUser()
{
return user;
}
public void setUser( User user )
{
this.user = user;
}
}