看到旧的SQL很蛋疼,一大推判断语句,组合的逻辑很乱,决定用Criteria来改写。
途中遇到两个问题,要mark下:
查找属性为成员类的属性,直接Restrictions.like("attrObj.name",searchStr)是不行的,Criteria会直接以object.name为属性做查找;
需要创建成员类的Alias:
criteria.createAlias("obj.attrObj","attrObj");
.......
...Restrictions.like("attrOjb.name", searchStr);
查找属性为集合类的属性,则需要要创建集合类的Alias:
criteria.createAlias("catList");
.......
...Restrictions.....具体忘了,明天补上
现在还有个问题没解决:
关联查询
Class A {
List C
}
Class B{
List C
Name name
}
Class C {
List A
List B
}
怎么查找B.name="Tom"的 A 结果集
途中遇到两个问题,要mark下:
查找属性为成员类的属性,直接Restrictions.like("attrObj.name",searchStr)是不行的,Criteria会直接以object.name为属性做查找;
需要创建成员类的Alias:
criteria.createAlias("obj.attrObj","attrObj");
.......
...Restrictions.like("attrOjb.name", searchStr);
查找属性为集合类的属性,则需要要创建集合类的Alias:
criteria.createAlias("catList");
.......
...Restrictions.....具体忘了,明天补上
现在还有个问题没解决:
关联查询
Class A {
List C
}
Class B{
List C
Name name
}
Class C {
List A
List B
}
怎么查找B.name="Tom"的 A 结果集