有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在没有第三方插件的情况下在Hibernate投影的输出对象中设置嵌套属性

我有以下实体-

UserDB{
String name;
Address address;
//getter Setter of name & address
}

User{
String name;
Address address;
//getter Setter of name & address
}

Address{
String line1;
String line2;
String postalCode;
//getter setter of line1,line2,postalCode
}

我们可以像下面这样在hibernate投影中设置嵌套属性吗?不使用第三方插件

public User getUserInfo(Long id) {
Criteria criteria = getCriteria(UserDB.class);
criteria.createAlias("addressDB", "addDbAlias", JoinType.INNER_JOIN);
    criteria.setProjection(Projections.projectionList()
                .add(Projections.property("name").as("name"))

        .add(Projections.property("addDbAlias.line1").as("address.line1")) //is this ".as(address.line1)" correct way? If not how to achieve this

            .add(Projections.property("addDbAlias.line2").as("address.line2"))
                .add(Projections.property("addDbAlias.postalCode").as("address.postalCode")));
criteria.add(Restrictions.eq("id", id));

以上代码给出错误:原因:组织。冬眠PropertyNotFoundException:找不到地址的setter。关于用户的第1行

如何解决这个错误。。提前谢谢


共 (0) 个答案