+ -
当前位置:首页 → 问答吧 → 请问 Criteria 对 Collection 查询的语法

请问 Criteria 对 Collection 查询的语法

时间:2011-10-18

来源:互联网

请问如何以 Criteria 执行类似的 SQL?
Collection 只能以 criteria.createCriteria("line") 做查询吗?
较旧版本的 Hibernate 好像可以直接 line.segment1 来查询
较新的版本就不行了

Mapping
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Header {
... private String segment1;
  @OneToMany(mappedBy="header") private List<Line> line;
...
}
 
public class Line {
... private String segment1;
  @ManyToOne @JoinColumn(name="HEADER_ID", referencedColumnName="HEADER_ID") private Header header;
...
}


SQL
1
2
3
4
5
select * from glt_inv_alltrans_line_v line, glt_inv_alltrans_header_v header where line.header_id = header.header_id and (header.segment1 = 'A' or line.segment1 = 'A');

作者: tai1110   发布时间: 2011-10-18

HQL试试
1
2
3
SELECT distinct Header FROM Header inner join Header.line as Line WHERE Header.segment1 = 'A' or Line.segment1 = 'A'

作者: kentyeh   发布时间: 2011-10-18

line.segment1 的做法一直都可以
不行 应该是你的关联没设好

作者: jk47   发布时间: 2011-10-18

热门下载

更多