【发布时间】:2015-09-03 15:42:53
【问题描述】:
我有一个休眠托管实体:
@Entity
public class Parent {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// (omitted useless details)
@OneToOne
@JoinColumn(name = "child_id", updatable = false)
private Child child;
// (omitted useless details)
}
--
@Entity
public class Child {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// (omitted rest...this is a POJO)
}
由于Child 的更新责任在其他地方管理,我的目标是在保存父级时简单地不更新子级。不幸的是,@JoinColumn 上的这个 updatable = false 似乎被忽略了,从而保存了对父子节点所做的任何更改。
我怎样才能在一对一的关系中只保存父母?
感谢任何帮助。
编辑:澄清一下,Child 类也是一个@Entity,但是一个简单的 POJO。 Parent 和 Child 之间的关系是从 parent 单向的。
【问题讨论】:
-
您是否尝试在
JoinColumn注释中将insertable属性设置为false? -
是的,我将它们都添加为测试,但仍然没有骰子。孩子仍在更新:(
-
Parent和Child的关系是单向还是双向?可以更新一下chie的代码吗?
-
@PrerakTiwari 关系从父级是单向的。我已经为孩子添加了代码,但它只是一个 POJO——那里没什么特别的。
-
明确一点:当您保存父级时,子级上的字段会持续存在?
标签: java hibernate one-to-one