我正在使用休眠编写一个条件查询。我有一个 DTO 对象,我必须使用它的字段生成一个查询。当我创建这样的析取时,一切似乎都很好:
Criteria c = s.createCriteria(Item.class);
c.add(Restrictions.disjunction()
.add(Restrictions.like("buyer", dto.getUser()))
.add(Restrictions.like("rndEngineer", dto.getUser()))
.add(Restrictions.like("logistics", dto.getUser()))
.add(Restrictions.like("qaEngineer", dto.getUser()))
);
但是,如果我在查询中添加别名以便能够执行此操作:
Criteria c = s.createCriteria(Item.class);
c.createAlias("wiEngineer", "we");
c.add(Restrictions.disjunction()
.add(Restrictions.like("buyer", dto.getUser()))
.add(Restrictions.like("rndEngineer", dto.getUser()))
.add(Restrictions.like("logistics", dto.getUser()))
.add(Restrictions.like("qaEngineer", dto.getUser()))
.add(Restrictions.like("we.sid", dto.getUser()))
);
where 子句很好,但我的结果集缺少一些元素。我认为 Hibernate inner 在我的项目上加入了我们。我可以让 Hibernate 以某种方式加入我的别名吗?我用谷歌搜索但无济于事。