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)