HQL有哪些好处?

时间:2014-01-31 16:24:41

标签: java hibernate orm hql resultset

ORM的好处是我可以将数据库表映射到Java对象。如果我使用HQL编写自定义语句那么重点是什么?我也可以编写正常的SQL查询并使用ResultSets?

2 个答案:

答案 0 :(得分:1)

好吧,主要是因为有时使用其他替代方法编写查询是不可能的(或非常困难)。然后你需要回退到HQL替代方案。

HQL有缺点,你用它写字符串的事实。所以强烈推荐其他策略。 但是,有时候,这是实现它的最快方式。

我还想请你阅读这篇文章,这篇文章已经广泛讨论过HQL:JPA and Hibernate - Criteria vs. JPQL or HQL

答案 1 :(得分:0)

HQL是唯一可以解决hibernate中剩余的一点点性能的方法。

如果你有一个包含很多行的大表,你需要的只是id和描述,那么你最好使用hql。 你可以填充pojo两列信息,如果你正在使用hibernate 4,你也有类型安全。

查询:

final TypedQuery<Pojo> query = em.createQuery(new StringBuilder()
.append("SELECT new ").append(Pojo.class.getName())
.append("(tbl.id, tbl.desc) FROM ")
.append(BigTable.class.getName()).append(" tbl ")
.append("WHERE tbl.id between :start and :end ")
.toString(),
Pojo.class
);

List<Pojo> list = query.getResultList();