0
删除同一实体我有4类实体:CtPersonaFirma,CtFirmaDocumento和CtContrato。一个人可以签署几份合同,一份合同可以由多人签署。更新集合时,从其他集合
CtPersonaFirma:包含授权签署人。
CtContrato:包含合同
CtFirmaDocumento:上面的两个表之间的关系。
当我删除一个人CtPersonaFirma表级联删除CtFirmaDocumento表,其中有引用删除的人,但在集合ctFirmaDocumentoCollection的实体CtContrato未更新。
public class CtContrato implements Serializable {
@Id
@Basic(optional = false)
@NotNull
@Column(name = "id_contrato")
private Integer idContrato;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "ctContrato", fetch=FetchType.LAZY)
private Collection<CtFirmaDocumento> ctFirmaDocumentoCollection;
public class CtPersonaFirma implements Serializable {
@Id
@Basic(optional = false)
@NotNull
@Column(name = "id_persona")
private Integer idPersona;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "ctPersonaFirma")
private Collection<CtFirmaDocumento> ctFirmaDocumentoCollection;
public class CtFirmaDocumento implements Serializable {
@EmbeddedId
protected CtFirmaDocumentoPK ctFirmaDocumentoPK;
@JoinColumn(name = "id_persona_ref", referencedColumnName = "id_persona", insertable = false, updatable = false)
@ManyToOne(optional = false)
private CtPersonaFirma ctPersonaFirma;
@JoinColumn(name = "id_contrato", referencedColumnName = "id_contrato", insertable = false, updatable = false)
@ManyToOne(optional = false)
private CtContrato ctContrato;
强制刷新,可以得到什么样的问题呢? – meyquel
这是一个数据库访问权限,因此它具有性能成本。刷新与未提交更改的实体将恢复这些变化,这就是为什么我认为这是更容易维护双方,或者只是不映射1:在所有的M。 – Chris
我明白了,谢谢你这么多... – meyquel