Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但HQL被有意识的设计为完全面向对象的查询,可以简单的实现查询部分字段。
创建JavaBean对象
例如现在我有如下一个Article
对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Article { private Integer id; private String title; private String author; private long publishTime = new Date().getTime();// 发表时间 private String content; // 空参构造方法 public Article() { } // 以下为 Setter 和 Getter ...... } |
查询所有字段
如果查询所有字段:HQL语句可以这么写:
1 |
String hql = "from Article a where a.id = ?"; |
查询部分字段
如果查询部分字段,例如:我想查询Article
的title
,author
和publishTime
。
先创建一个含有以上参数的构造方法:
1 2 3 4 5 6 |
public Article(String title, String author, long publishTime) { super(); this.title = title; this.author = author; this.publishTime = publishTime; } |
然后HQL这么写:
1 |
String hql = "select new Article(title,author,publishTime) from Article a where a.id = ?"; |
如果有两张表:
1 |
String hql = "select new Article(a.title,a.author,a.publishTime) from Article as a left join User as u where a.id = u.id";// 这里只是举例 |
如果需要同时包含多个表的字段,那么可以创建一个中间的JavaBean对象,并创建对应的构造方法,这里不再赘述,如果有问题,请留言。
- 本文固定链接: https://blog.kuoruan.com/45.html
- 转载请注明: Index 于 扩软博客 发表
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!