java - 将 MySQL 查询转换为 Hibernate Criteria

标签 java mysql hibernate hibernate-criteria

SELECT * FROM test.pchi new INNER JOIN rlhi old ON new_id = old.menu_id where new.name='?'

类似于:

Select * from db.employee emp INNER JOIN db.table on emp_tableID = table.id where emp.name = '?'

如果你能告诉我如何进行投影,那就太棒了......如:

Select emp.name, emp.sex, table.brand from ....

我尝试使用 fetch,但我对此很陌生,并且不断收到一些奇怪的错误。有人可以演示如何做到这一点吗?

这个怎么样?

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"));

在你的类(class)里,你有这样的事情

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;
}

注意当您使用SET时,应重写equals()hashCode()方法才能正常工作

关于java - 将 MySQL 查询转换为 Hibernate Criteria,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055874/

相关文章:

php - Symfony 隐藏限制左连接的结果数量

c# - 是否可以使用异常来标记何时尝试进行重复的 SQL 插入?

java - @onetoone 和 @EmbeddedId

java - Hibernate 3.6.10 不通过 OneToMany JoinTable 级联删除

Java xml解码列表嵌套对象问题

java - 有没有办法从抽象类的具体方法访问具体类变量值

java - tomcat如何使用build.properties和build.xml?

javascript - 如何在网络上实现斯坦福大学的 NLP

php - 如何通过排除一组数组来获取 MySQL 表的前 N ​​条记录?

java - 使用SQL查询创建索引和在JPA中使用@Index创建索引的区别