Füllen Kind bean mit Transformatoren.aliasToBean in Hibernate

Habe ich das nächste paar Bohnen:

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

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

Ich versuche, die nächsten Hibernate-Abfrage:

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));

Problem:

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

Ich verstehen, dass Hibernate ist auf der Suche nach etwas wie:

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

Statt:

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

Ideen über, wie kann ich das beheben, ohne eine neue bean?

Dank!

Sie haben setAddress(Address Address) in MyEntity und alle anderen setter in ganzen Bohnen?
ja Mach ich 🙂

InformationsquelleAutor maqjav | 2013-09-10

Schreibe einen Kommentar