Как я могу получить только столбец, который addScalar из класса DTO? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть вопрос о addScalar в Hibernate.Пример У меня есть класс DTO:

public class FieldInfoDTO {
    private String fieldInfo1;
    private String fieldInfo2;
    private String fieldInfo3;
    private String fieldInfo4;
    private String fieldInfo5;
}

Затем в классе DAO я сделал это:

String sql = "SELECT field_info1 AS fieldInfo1 FROM tbl_field_info;"
SQLQuery query = getSession().createSQLQuery(sbQuery.toString());
query.addScalar("fieldInfo1", StringType.INSTANCE);
query.setResultTransformer(Transformers.aliasToBean(FieldInfoDTO.class));
return query.list();

Я ожидаю, что результат будет в Postman такой:

{
   "fieldInfo1" : "value"
}

Но возвращается:

{
    "fieldInfo1" : "value",
    "fieldInfo2" : null,
    "fieldInfo3" : null,
    "fieldInfo4" : null,
    "fieldInfo5" : null
}

Можно ли отобразить только столбец, который я добавляю Scalar?

1 Ответ

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

Я думаю, что проблема здесь в следующем:

query.setResultTransformer(Transformers.aliasToBean(FieldInfoDTO.class));

, поскольку он форматирует результат в соответствии с атрибутами в FieldInfoDTO классе (хотя для других полей установлено значение null)

Попробуйте удалить его и получить результат в списке String.

...