Получение следующего исключения:
Причина: org.hibernate.QueryException: не удалось разрешить свойство: primaryAddress of: com.hcentive.user.ContactInfo в org.hibernate.persister.entity.AbstractPropertyMapping.propertyException (AbstractPropertyMapping.java:62) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.persister.entity.AbstractPropertyMapping.toType (AbstractPropertyMapping.java:56) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber (AbstractEntityPersister.java:1805) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns (BasicEntityPropertyMapping.java:46) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.persister.entity.AbstractEntityPersister.toColumns (AbstractEntityPersister.java:1780) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns (CriteriaQueryTranslator.java:510) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumnsUsingProjection (CriteriaQueryTranslator.java:46)-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.criterion.Order.toSqlString (Order.java:109) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.loader.criteria.CriteriaQueryTranslator.getOrderBy (CriteriaQueryTranslator.java:414) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.loader.tests.CriteriaJoinWalker. (CriteriaJoinWalker.java:106) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] at org.hibernate.loader.criteria.CriteriaJoinWalker. (CriteriaJoinWalker.java:75) ~[hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.loader.criteria.CriteriaLoader. (CriteriaLoader.java:80) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в org.hibernate.internal.SessionImpl.list (SessionImpl.java:1773) ~ [hibernate-core-5.1.0.Final.jar: 5.1.0.Final] в илиg.hibernate.internal.CriteriaImpl.list (CriteriaImpl.java:363)
при сортировке столбца адреса в datatable, который определяется как:
{
"mData": function (customer) {
var address = customer.userProfile.contactInfo.primaryAddress;
return address ? address.displayString : "";
},
"aTargets": [4],
"sName": "userProfile.contactInfo.primaryAddress",
"sClass": "wrapWord100"
},
primaryAddress присутствует какgetter in ContactInfo.java entity
public Address getPrimaryAddress() {
for (Address add : addresses) {
if (null != add && AddressTypeEnum.Primary.toString().equals(add.getType())) {
return add;
}
}
return null;
}
private Set<Address> addresses = new HashSet<Address>();
Ошибка может быть вызвана тем, что «primaryAddress» отсутствует в виде столбца в «ContactInfo».Как решить эту проблему.
@Entity
@Table(name = "CONTACT_INFO")
public class ContactInfo extends Persistent {
private Set<Address> addresses = new HashSet<Address>();
@Valid
public Address getPrimaryAddress() {
for (Address add : addresses) {
if (null != add && AddressTypeEnum.Primary.toString().equals(add.getType())) {
return add;
}
}
return null;
}
}