本机查询为:
select application.APP_ID
from user, customer, application
where user.USE_CUSTOMER_ID = customer.CUS_ID
and application.APP_CUSTOMER_ID = customer.CUS_ID
and user.USE_ID=1;
现在我有了表Hibernate实体,所以我在ApplicationRepository中尝试了
@Query(SELECT application FROM Application a
INNER JOIN customer c ON c.customer.id = a.customer.id
INNER JOIN user u ON u.customer.id = c.customer.id
INNER JOIN application a ON a.user.id = u.id
WHERE
u.id = :user.id)
List<Application> findApplicationsByUser(@Param("User") User user);
日志上说
@Entity
@Table
public class Application extends BaseSimpleEntity {
...
@ManyToOne(optional = false)
private Customer customer;
...
}
@Entity
@Table
public class Customer extends BaseSimpleEntity {
...
@OneToMany(mappedBy = "customer")
private List<User> users;
@OneToMany(mappedBy = "customer")
private List<Application> applications;
...
}
@Entity
@Table
public class User extends BaseSimpleEntity {
...
@ManyToOne(optional = false)
private Customer customer;
...
}
在JPA中不需要ON子句,因为JPA已经知道实体是如何关联的,这要归功于映射注释。
此外,您选择的是application
,它不是查询中定义的别名。
你的加入毫无意义。
select application FROM Application a
join a.customer c
join c.users u
where u.id = :userId
问题内容: 我想通过注释@Query通过Jpa存储库进行Join查询。我有三个表。 本机查询是: 现在我有了Table Hibernate实体,所以我在ApplicationRepository中尝试过 日志说 意外的标记 有什么想法吗? 我的表实体 Application.java: Customer.java: User.java: 问题答案: 您不需要JPA中的ON子句,因为借助映射注释,J
问题内容: 我想使用带有注释@Query的Jpa存储库进行Join查询。 我有两个表: 和: 本机查询是: 现在我有一个表休眠实体用户和区域 所以我尝试了UserRespository 日志说: 意外的标记: 有什么主意吗? 我的表实体 问题答案: 您遇到此问题的原因有两个。 JPQL查询无效。 您尚未在基础JPQL查询可以利用的实体之间创建关联。 在JPQL中执行联接时,必须确保尝试联接的实体之
我想使用带有注释@query的Jpa存储库创建一个连接查询。 我有两张桌子: 和: 我的表实体
问题内容: 我尝试实现JPA自定义存储库。 我有一个这样的过滤器对象: 从前端,我根据用户输入创建FilterPatient的实例。 因此,例如,用户可以值姓和cf属性或值和姓,等等。 我想实现一个自定义存储库,如下所示: 题: 根据用户输入,我必须执行其他查询,那么如何管理存储库?我必须编写查询方法以涵盖输入字段的不同组合,并且必须在服务中编写有关方法存储库调用的逻辑?或者我可以更好地自定义方法
我尝试实现一个JPA自定义存储库。 我有一个过滤器对象,如下所示: 在前端,我根据用户输入创建了一个FilterPatient实例。 按用户分类的示例查询 和其他可能的配置,例如,在FilterPatient的cf属性为NULL中,查询将变为:
我使用jpa存储库进行自定义查询。但我发现了错误 错误日志: 通过字段“login service”表示的不满足的依赖关系;嵌套异常为org.springframework.beans.factory.unsatisfieddependencyexception:创建名为“login service”的bean时出错:通过字段“login serviceimpl”表示的不满足依赖项;嵌套异常为or