1

我在使用休眠的一对多映射中遇到了一个问题。

我有 2 节课,Person并且Address. PersonAddress(一对多)映射。我想得到所有 Person where Address = "xxxx" and person_name like '%8888%'。我已经定义了具有多对一关系的 Person 和地址类的休眠映射文件

Criteria criteria = session.createCriteria(Person.class,"per")
    .add(Restrictions.eq("fname", obj.getInt("fname")))             
    .createCriteria("Addresses","add")                  .add(Restrictions.ilike("address",fieldValue,MatchMode.ANYWHERE));

在生成的查询中,添加了冗余左连接和默认内连接。如何从查询中禁用/删除左外连接。

4

1 回答 1

0

尝试这个:

Criteria criteria = session.createCriteria(Person.class,"per")
    .createAlias("per.addresses","add")
    .add(Restrictions.eq("per.fname", obj.getInt("fname")))
    .add(Restrictions.ilike("add.address",fieldValue,MatchMode.ANYWHERE));
于 2013-09-02T23:17:50.410 回答