我怎样才能只从 DTO class 中获取 addScalar 的列?

How can i only get column which addScalar from DTO class?

我对 Hibernate 中的 addScalar 有疑问。示例我有 DTO class:

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

然后在 DAO 中 class 我这样做了:

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"
}

但是 return:

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

有没有办法只显示我添加标量的列?

我认为这里的问题是由于声明:

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

因为它根据 FieldInfoDTO class 中的属性格式化结果(尽管其他字段设置为 null

尝试删除它并在 String 的列表中获取结果。