Java Hibernate/JPA,保存一个新实体,同时只在@OneToOne关联上设置id

Java Hibernate/JPA,保存一个新实体,同时只在@OneToOne关联上设置id,java,database,hibernate,jpa,orm,Java,Database,Hibernate,Jpa,Orm,我有两个实体 class A { @OneToOne B b; } class B { ... lots of properties and associations ... } 当我创建新A()并保存时,我只想设置b的id 因此新建A().setB(新建B().setId(123)) 然后保存并让数据库保存它 我真的不需要或者不想首先从数据库中获取整个B来填充A的实例 我记得这曾经是有效的,但当我测试它时,它不是 我也尝试了所有的级联 下面的代码应该有帮助。只有在访问B时,它才

我有两个实体

  class A { @OneToOne B b; } 

  class B { ... lots of properties and associations ... } 
当我创建新A()并保存时,我只想设置b的id

因此新建A().setB(新建B().setId(123))

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

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

我记得这曾经是有效的,但当我测试它时,它不是


我也尝试了所有的级联

下面的代码应该有帮助。只有在访问B时,它才会获取B

A类{
@OneToOne(fetch=FetchType.LAZY)B;
}

相当于JPA的是:

 entitymanager.getReference(B.class, id)

我认为如果您在使用JPQL时不首先获取B实体并将其设置为A,那么它将不起作用。我认为您正在寻找的是延迟加载。@zerocool您是说在B的关联上?还是A对b中的一个?
 entitymanager.getReference(B.class, id)