使用以下代码,我可以成功检索用户的地址字段,为此我需要使用 Projection 定义其所有字段。想象一下地址有 100 个字段,在这种情况下我必须定义所有字段。
我想知道我是否可以只返回客户的地址对象而不在 Proposition 中定义其所有字段?
我知道我可以检索地址的 id 并使用它来检索其对象,但我想知道是否有其他方法而不是 this 或定义它的所有字段。
休眠
.....
Criteria cre = session.createCriteria(User.class, "user")
.createAlias("user.address", "addr");
cre.add(Restrictions.eq("user.id", ID));
ProjectionList pl = Projections.projectionList();
pl.add(Projections.property("addr.id").as("id"));
pl.add(Projections.property("addr.unit").as("unit"));
.......
cre.setProjection(pl);
Address address = (Address) cre.list().get(0);
我也使用了以下内容,但遇到错误(无法解析属性:com.myProject.User 的地址)
pl.add(Projections.property("addr").as("address"));
爪哇
@Entity
public Class User {
@Id
@GeneratedValue
private long id;
@OneToOne
private Address address;
...
}