【问题标题】:deleting entity in a onetomany relationship删除单对多关系中的实体
【发布时间】:2012-10-10 19:41:17
【问题描述】:

我在删除子实体项时遇到问题。每次我删除它时都没有任何反应,并且父母和孩子之间的关联仍然存在。我在网上搜索过,有些人建议使用 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。 我不确定删除方法是否错误,因为这是我用来删除其他没有关系的实体项的方法。

【问题讨论】:

    标签: java entity relationship


    【解决方案1】:

    这应该对您有所帮助。它是沿着相同的路线。我通常使用 Hibernate 而不是 JPA 来通过级联属性自动删除。

    JPA OneToMany not deleting child

    【讨论】:

      猜你喜欢
      • 2021-08-08
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      相关资源
      最近更新 更多