我在两个表之间建立了一个内连接,但是它没有用。 如果有人能尽快帮助我,那对我很有帮助。
提前致谢
看起来像这样:
List<Bondetal> bondetals = session.createQuery("from Bondetal bd inner join bd.Bon b where bd.idbon = b.idbon and idprodus = " + idprodus +" and Bon.suma >=" + suma).list();
我收到此错误:
Exception in thread "AWT-EventQueue-0" org.hibernate.QueryException: could not resolve property: Bon of: sakila.entity.Bondetal [from sakila.entity.Bondetal bd inner join bd.Bon b where bd.idbon = b.idbon and idprodus = 2 and Bon.suma >=1]
答案 0 :(得分:0)
为了能够进行连接,您需要实体之间的关联。因此,BonDetal实体应具有类似
的内容@ManyToOne
@JoinColumn(name = "idbon")
private Bon bon;
它不能具有任何idbon
属性,因为idbon列由关联映射。
查询不需要任何where bd.idbon = b.idbon
子句,因为Hibernate知道实体如何相互关联。因此查询应为:
select bd from Bondetal bd
inner join bd.bon b
where bd.idprodus = :idprodus
and b.suma >= :suma
您还应该使用命名参数而不是将值连接到查询,以避免SQL注入攻击和转义问题。
所有这些都在Hibernate documentation中解释。如果你很匆忙,你应该阅读它,而不是尝试随机查询。