获得以下例外情况:
由: org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:62):org.hibernate.QueryException:无法解决属性: primaryAddress of: com.hcentive.user.ContactInfo at org.hibernate.persister-5.1.0.Final.jar:5.1.0.Final.jar:5.1.0.Final.jar在org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:56) ~hibernate-core-5.1.0.Final.jar:5.1.0.Final.jar:5.1.0.Final.jar.entity.AbstractEntityPersister.getSubclassPropertyTableNumber(AbstractEntityPersister.java:1805) ~hibernate-core-5.1.0.Final.jar:5.1.0.final.jar:5.1.0.Final.jar:5.1.0.final.jar:在org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:510) ~hibernate-core-5.1.0.final.jar:5.1.0.Final.jar在org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumnsUsingProjection(CriteriaQueryTranslator.java:469) ~hibernate-核心-5.1.0.Final.jar:5.1.0.Final.jar:5.1.0.Final.jar:5.1.0.Final.jar:5org.hibernate.loader.criteria.CriteriaQueryTranslator.getOrderBy(CriteriaQueryTranslator.java:414) ~hibernate- .1.0.Final :5.1.0.Final.jar:5.1.0.Final.jar在org.hibernate.loader.criteria.CriteriaJoinWalker.(CriteriaJoinWalker.java:106) ~hibernate-core-5.1.0.Final.jar:5.1.0.Final.jar:5.1.0.0.Final.jar:5.1.0.在org.hibernate.loader.criteria.CriteriaLoader.(CriteriaLoader.java:80) ~hibernate-core-5.1.0.Final.jar:5.1.0.Final.jar:5.1.0.Final.jar在org.hibernate.internal.SessionImpl.list(SessionImpl.java:1773) ~hibernate-core-5.1.0.Final.jar:5.1.0.Final.jar:5.1.0.Final.jar:5.1.0.final.jar:5.1.0.final.jar在org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363)完成
同时对datatable中的address列进行排序,该列定义为:
{
"mData": function (customer) {
var address = customer.userProfile.contactInfo.primaryAddress;
return address ? address.displayString : "";
},
"aTargets": [4],
"sName": "userProfile.contactInfo.primaryAddress",
"sClass": "wrapWord100"
},primaryAddress在ContactInfo.java实体中作为getter存在。
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;
}
}发布于 2018-09-27 05:12:01
您需要将查询更改为以下内容。此外,这将返回地址列表,而不是单个地址。
"mData": function (customer) {
var address = customer.userProfile.contactInfo.addresses;
return address ? address.displayString : "";
},
"aTargets": [4],
"sName": "userProfile.contactInfo.addresses",
"sClass": "wrapWord100"
},https://stackoverflow.com/questions/52513482
复制相似问题