org.hibernate.QueryException: не удалось разрешить свойство, если свойство не представлено в виде столбца - PullRequest
0 голосов
/ 26 сентября 2018

Получение следующего исключения:

Причина: 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;
        }
}

1 Ответ

0 голосов
/ 27 сентября 2018

Вам нужно изменить свой запрос на этот.Также это вернет список адресов, а не один адрес.

"mData": function (customer) {
                                var address = customer.userProfile.contactInfo.addresses;
                                return address ? address.displayString : "";

                            },
                            "aTargets": [4],
                            "sName": "userProfile.contactInfo.addresses",
                            "sClass": "wrapWord100"
                         },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...