Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 当我知道主键但不知道时,建立JPA关系';您没有主键的实体吗?_Hibernate_Jpa - Fatal编程技术网

Hibernate 当我知道主键但不知道时,建立JPA关系';您没有主键的实体吗?

Hibernate 当我知道主键但不知道时,建立JPA关系';您没有主键的实体吗?,hibernate,jpa,Hibernate,Jpa,考虑这样一个实体 public class SomeEntity { @ManyToOne @JoinColumn(name = "company_fk") private CompanyEntity company; } company_fk列是一个整数。在我的应用程序中,我经常发现自己处于这样一种情况:我有company_fk整数,但不一定有CompanyEntity 我想做的是创建某个实体的新实例,并将其与CompanyEntity关联,这样我就必须从db中读取C

考虑这样一个实体

public class SomeEntity {
    @ManyToOne
    @JoinColumn(name = "company_fk")
    private CompanyEntity company;
}
company_fk列是一个整数。在我的应用程序中,我经常发现自己处于这样一种情况:我有company_fk整数,但不一定有CompanyEntity

我想做的是创建某个实体的新实例,并将其与CompanyEntity关联,这样我就必须从db中读取CompanyEntity,以便建立关系。这不是很好,因为我要去db,即使我不需要这样做

有没有办法避免仅仅为了建立关系而加载实体?我将JPA2与Hibernate一起使用,如果有办法,我愿意使用Hibernate-only映射来实现这一点

这正是存在的原因。它假定具有给定ID的实体存在,并向该实体返回代理:

// get a reference to the company without going to the DB:
CompanyEntity company = em.getReference(CompanyEntity.class, companyId);
SomeEntity e = new SomeEntity();
e.setCompany(company);
Hibernate的本机会话类具有相同的方法,只是它被称为
load()