Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Java Hibernate标准API通过id连接_Java_Hibernate_Criteria_Hibernate Criteria - Fatal编程技术网

Java Hibernate标准API通过id连接

Java Hibernate标准API通过id连接,java,hibernate,criteria,hibernate-criteria,Java,Hibernate,Criteria,Hibernate Criteria,使用Criteria API时,为了向当前实体引用的实体添加过滤器,我使用以下代码: criteria.createAlias("customer", "customer", Criteria.INNER_JOIN); 其中customer是为其创建条件的实体中的customer实体属性。问题是,我需要删除引用的实体,并在类中只保留它的id,即replace @ManyToOne @JoinColumn(name = "ID_CUSTOMER") private CustomerEntity

使用Criteria API时,为了向当前实体引用的实体添加过滤器,我使用以下代码:

criteria.createAlias("customer", "customer", Criteria.INNER_JOIN);
其中customer是为其创建条件的实体中的customer实体属性。问题是,我需要删除引用的实体,并在类中只保留它的id,即replace

@ManyToOne
@JoinColumn(name = "ID_CUSTOMER")
private CustomerEntity customer;

那么,我需要在我的criteria别名中做什么更改才能使其保持工作状态?这是我在上面介绍的一个过滤器示例,以及上面的连接:

criteria.add(Restrictions.eq("customer.statusId", statusId));

为什么需要删除映射?使用hibernate的全部目的是能够映射真实的对象关系:)您不能在未映射的关系上加入,您需要使用子查询。我明白您的观点,我同意您的观点,但这是一个请求。每个数据库更改都是通过批处理请求完成的,批处理执行会触发这些实体的延迟初始化,这会减慢进程。如果问题是客户的初始化,则可以将获取模式设置为延迟。请参阅manytone注释API。
criteria.add(Restrictions.eq("customer.statusId", statusId));