加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在Hibernate中使用Transformers.aliasToBean填充子bean

发布时间:2020-12-15 02:04:59 所属栏目:Java 来源:网络整理
导读:我有下几个豆子: Address { String name; String number; String zipcode; String town;}MyEntity { Address address; String value1; String value2;} 我正在尝试执行下一个Hibernate查询: private final ListString propertiesDistinct = Arrays.asList(
我有下几个豆子:

Address {
    String name;
    String number;
    String zipcode;
    String town;
}

MyEntity {
    Address address;
    String value1;
    String value2;
}

我正在尝试执行下一个Hibernate查询:

private final List<String> propertiesDistinct = Arrays.asList("address.name");
private final List<String> properties = Arrays.asList("address.number","address.zipcode","address.town")

ProjectionList projectionList = Projections.projectionList();

if (propertiesDistinct != null) {
    ProjectionList projectionListDistinct = Projections.projectionList();
for (String propertyDistinct : propertiesDistinct)
         projectionListDistinct.add(Projections.property(propertyDistinct).as(propertyDistinct));

    projectionList.add(Projections.distinct(projectionListAgrupar));
}

if (properties != null)
    for (String property : properties)
         projectionList.add(Projections.property(property).as(property));
criterio.setProjection(projectionList);

// MORE FILTERS ON MyEntity FIELDS
//... criterio.add(Restrinctions...);

// I want to recover the results on my bean MyEntity so I don't have to create a new one
criterio.setResultTransformer(Transformers.aliasToBean(MyEntity.class));

问题:

Caused by: org.hibernate.PropertyNotFoundException: Could not find setter for address.name on class com.entities.MyEntity

我知道Hibernate正在寻找类似的东西:

public String getAddressName() {} // This should be in MyEntity

代替:

public String getName() {} // In my Address bean

关于如何在不创建新bean的情况下解决这个问题的想法?

谢谢!

解决方法

我写了一个ResultTransformer来解决你的问题.它的名字是AliasToBeanNestedResultTransformer,请在 github上查看.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读