Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/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
Java 如何有条件地使用OneToMany实体填充外键?_Java_Spring_Hibernate_Jpa_Criteria - Fatal编程技术网

Java 如何有条件地使用OneToMany实体填充外键?

Java 如何有条件地使用OneToMany实体填充外键?,java,spring,hibernate,jpa,criteria,Java,Spring,Hibernate,Jpa,Criteria,我假设设置如中所述: 员工: @JoinColumn(name="EMPLOYEE_ID") private Set<AccountEntity> accounts; @ManyToOne private EmployeeEntity employee; 使用JPA/Hibernate,如何使用应用于帐户的WHERE条件获取结果。换言之,查询类似于的内容,选择所有账户销售额>0的员工。我假设账户表中的sales列为INT 您可以编写如下查询: TypedQuery<Emp

我假设设置如中所述:

员工:

@JoinColumn(name="EMPLOYEE_ID")
private Set<AccountEntity> accounts;
@ManyToOne
private EmployeeEntity employee;

使用JPA/Hibernate,如何使用应用于帐户的
WHERE
条件获取结果。换言之,查询类似于
的内容,选择所有账户销售额>0的员工。

我假设账户表中的sales列为INT

您可以编写如下查询:

TypedQuery<Employee> query = em.createQuery("SELECT e FROM Employee e JOIN Account a ON e.id = a.accounts.employee_id WHERE a.sales > :sales", Employee.class);
query.setParameter("sales", salesInput);
List<Employee> items = query.getResultList();
TypedQuery query=em.createQuery(“从e.id=a.accounts.Employee\u id上的员工e中选择e,其中a.sales>:sales”,Employee.class);
query.setParameter(“销售”,salesInput);
List items=query.getResultList();
我建议您通过本教程了解Hibernate关联中的CRUD操作

account表中的sales列在哪里?@Abhijeet从自写字符串查询生成查询时,
sales
列将是accounts表中的一个数值(INT,…),是否仍可以使用
.setFirstResult
.setMaxResults
等方法?是。这是可能的<代码>查询.setFirstResult(0);query.setMaxResults(5)
像这样,然后调用
getResultList
method@janniks我建议您阅读本教程,使用criteria builder(而不是
TypedQuery
)也可以使用相同的功能。是的,这是可能的。您可以将条件用作well@janniks