我在删除子实体项时遇到问题。每当我删除它没有任何反应,父母和孩子之间的关联仍然存在。我通过网络搜索,有些人建议使用orphanremoval,但我已经尝试过它并没有用。感谢是否可以提供建议。 我的代码如下:
ClientProfile Entity (PARENT)
Collapse | Copy Code
@Entity (name="ClientProfile")
public class ClientProfile implements Serializable {
@OneToMany(orphanRemoval = true)
private List<Address> address;
@OneToMany(orphanRemoval = true)
private List<ClientJob> clientJob;
@OneToMany(orphanRemoval = true)
private List<Asset> clientAsset;
...
}
资产实体(CHILD) 是一种单向关系,因此资产实体不包含任何@ManyToOne
在我的SQL数据库表中,我的关系是CLIENTPROFILE_CLIENTASSET 他们通过clientid连接到assetid
在我的会话bean中,这是我的删除方法:
@Override
public void removeAsset(Long assetId) throws DoesNotExistsException{
Query query = em.createQuery("SELECT as FROM Asset as WHERE as.assetId = :assetid");
query.setParameter("assetid", assetId);
if (query.getResultList().isEmpty()){
throw new DoesNotExistsException("Asset does not exist!");
} else {
em.remove(query.getSingleResult());
}
}
正在从managedbean解析assetid。 我不确定remove方法是否错误,因为这是我用来删除没有关系的其他实体项的方法。
答案 0 :(得分:0)
这应该对你有所帮助。它是沿着相同的路线。我通常使用Hibernate而不是JPA来通过级联属性自动删除。