java - Hibernate/JPA,保存新实体,同时仅在@OneToOne 关联上设置 id

标签 java database hibernate jpa orm

我有两个实体,

  class A { @OneToOne B b; } 

  class B { ... lots of properties and associations ... } 

当我创建new A() 然后保存时,我只想设置b 的id。

所以 new A().setB(new B().setId(123))

然后保存并让数据库保留它。

我真的不需要或不想先从数据库中获取整个 B 来填充 A 的实例。

我记得这曾经有效,但当我测试时却无效。

我也尝试过 Cascade All

最佳答案

B b = (B) hibernateSession.byId(B.class).getReference(b.getId());
a.setB(b);

hibernateSession.load(...) // can also be used as it does the same. 

JPA 等价物是:

 entitymanager.getReference(B.class, id)

关于java - Hibernate/JPA,保存新实体,同时仅在@OneToOne 关联上设置 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45515783/

相关文章:

java - 像python中的os.walk一样使用Java定位硬盘中的文件

java - 使用 Java 日期,给定一年,我想要一个方法,该方法应该返回代表一周中给定日期的日期列表,共 52 次

java - 春网: Loading ModelMap from HTTP query parameters

database - PK生成性能: DB generated sequence or app-generated random

java - JPA 持久类从不同的 JAR 扩展另一个类

java - 如何在hibernate和spring中生成这种格式的订单号ORD000001

java - JDBC 瘦甲骨文 11g

.net - asp.net的数据库访问限制

mysql - 如何更快地加载mysql中的数据?

java - 执行查询时出现 Hibernate 异常