【发布时间】:2010-02-25 10:07:48
【问题描述】:
使用休眠 3.2.4.sp1 我有两个实体 用户和联系人信息
一个User 有一个相关的ContactInfo,关系是单向的,即ContactInfo 不知道它所属的用户(也不应该在其他关系中重用它)
User 实体有一个实体侦听器,可防止实际用户本身以外的其他用户在数据库中更新它。这工作正常。问题是一个用户可以更新另一个用户ContactInfo。当用户级联ContactInfo 上的保存时,我想包括运行实体侦听器,这可能吗?
目前的关系
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@Cascade( { org.hibernate.annotations.CascadeType.ALL,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
@JoinColumn(name = "CONTACT_PERSON", nullable = false)
public ContactPerson getContactInfo() {
return contactInfo;
}
public void setContactInfo(ContactPerson contactInfo) {
this.contactInfo = contactInfo;
}
当前:实体监听器:
public class UserListener extends EntityListener {
@PreUpdate
@PrePersist
@PreRemove
public void checkWriteAuthorization(User user) throws IllegalUserAccessException {
//access rules here
}
}
我想我正在寻找类似“@PreCascadeChanges”的东西
实际的 store 调用总是在实体 User 上,更新被级联到 ContactInfo
【问题讨论】:
-
嗨,我知道这是旧的......但你有没有找到解决方案?