相关疑难解决方法(0)

为什么JPA有@Transient注释?

Java有transient关键字.为什么JPA @Transient不是简单地使用已经存在的java关键字?

java annotations jpa transient java-ee

269
推荐指数
7
解决办法
29万
查看次数

Hibernate - 如何仅保留父级,保持子级不变

有人可以帮我理解如何配置hibernate来做我想做的事.

我有一个父母实体"公寓",其中"房间"列表为儿童.我有一个表格来编辑"公寓",在该表格中,我列出了所有儿童"房间"仅供参考.客房以单独的形式添加和编辑.

因为我在appartment-form中列出了房间,我将lazyloading设置为false:

    @OneToMany
@JoinColumn (name = "appartmentId")
@LazyCollection (LazyCollectionOption.FALSE)
private List<Room> room;
Run Code Online (Sandbox Code Playgroud)

但如果我编辑公寓并存储它,所有公寓房间突然消失.在数据库中,它们不会被删除,而是被解除引用(如在appartmentId = null中).

那么如何配置hibernate只能保留我的Appartment-object.而不是触摸孩子们?

这是我的保存动作:

public String save() throws Exception {
    boolean isNew = (appartment.getAppartmentId() == null);

    appartment = appartmentManager.save(appartment);

    String key = (isNew) ? "appartment.added" : "appartment.updated";
    saveMessage(getText(key));

    return SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

java hibernate

8
推荐指数
1
解决办法
8622
查看次数

标签 统计

java ×2

annotations ×1

hibernate ×1

java-ee ×1

jpa ×1

transient ×1