将MySQL查询转换为Hibernate Criteria [英] Converting MySQL query to Hibernate Criteria
本文介绍了将MySQL查询转换为Hibernate Criteria的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
SELECT * FROM test.pchi new INNER JOIN rlhi old ON new_id = old.menu_id where new.name ='?'
类似于:
从db.employee emp中选择* INNER JOIN db.table on emp_tableID = table.id where emp.name ='?'
如果你可以告诉我如何做一个投影,这将是很棒的......如下:
选择emp.name,emp。 sex,table.brand from ....
我尝试使用抓取,但我很新对此并不断发生一些奇怪的错误。有人可以请示范如何做到这一点?
如何?
sess.createCriteria(pchi.class )/ ** /
.setFetchMode(rlhi,FetchMode.JOIN)
.add(Restrictions.eq(new_id,rlhi.menu_id))
.add(Restrictions .eq(name,SOME INPUT))
解决方案
sess.createCriteria(Pchi.class)
.setFetchMode(rlhi,FetchMode.JOIN)//注意rlh1是Pchi类中的属性名称
.add(Restrictions.eq(name,SOME INPUT));
在你的课堂里你有类似的东西
class Pchi {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name =new_id,referencedColumnName =menu_id)
私人Rlhi rlhi;
}
class Rlhi {
@OneToMany(mappedBy =rlhi)
private< Set> Pchi pchis;
}
注当您使用 SET
应该覆盖 equals()
和 hashCode()
方法正常工作
SELECT * FROM test.pchi new INNER JOIN rlhi old ON new_id = old.menu_id where new.name='?'
Similar to:
Select * from db.employee emp INNER JOIN db.table on emp_tableID = table.id where emp.name = '?'
If you could tell me how to do a projection, that would be awesome... as in:
Select emp.name, emp.sex, table.brand from ....
I tried using fetch, but I'm very new to this and keep getting some weird errors. Could someone please demonstrate how to do this?
How about this?
sess.createCriteria(pchi.class)/**/
.setFetchMode("rlhi", FetchMode.JOIN)
.add(Restrictions.eq("new_id", "rlhi.menu_id"))
.add(Restrictions.eq("name", "SOME INPUT"))
解决方案
sess.createCriteria(Pchi.class)
.setFetchMode("rlhi", FetchMode.JOIN) //note that rlh1 is the property name in Pchi class
.add(Restrictions.eq("name", "SOME INPUT"));
In your class you have something like this
class Pchi{
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="new_id", referencedColumnName="menu_id")
private Rlhi rlhi;
}
class Rlhi{
@OneToMany(mappedBy="rlhi")
private <Set> Pchi pchis;
}
NOTE When you use SET
should override equals()
and hashCode()
method to work properly
这篇关于将MySQL查询转换为Hibernate Criteria的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文