Как исключить поле в @SqlResultSetMapping? - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть объект BestSellerMagazines с пользовательским @ SqlResultSetMapping

 @Entity
 @SqlResultSetMapping(name = "BestSellerMagazinesJobQueryMapping",
    entities = {@EntityResult(entityClass = BestSellerMagazines.class, fields = {
            @FieldResult(name = "id", column = "[ID]"),
            @FieldResult(name = "groupId", column = "[GroupID]")
    })}
)
public class BestSellerMagazines implements Serializable {

    @Id
    @Column(name = "ID")
    private Long id;

    @Column(name = "GroupID")
    private Integer groupId;

    @Column(name = "ZoneId")
    private Integer zoneId;
}

Как видите, @ SqlResultSetMapping неесть поле zoneId , но у сущности BestSellerMagazines оно есть.Я использую @ SqlResultSetMapping как resultSetMapping для некоторого собственного запроса SQL.

SQLQuery query = session.createSQLQuery(SQLStatements.CUSTOM_SQL_QUERY);
query.setResultMapping("BestSellerMagazinesJobQueryMapping");
query.list();

Но я получаю следующее исключение при попытке выполнить этот SQLQuery:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The column name ZoneId33_57_0_ is not valid.

Итак, Hibernate автоматически генерирует имя для поля zoneId и пытается найти это поле в значениях, возвращаемых SQLQuery.Могу ли я как-то сказать Hibernate игнорировать zoneId поле в BestSellerMagazinesJobQueryMapping mapping?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...