我怎样才能只从 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
的列表中获取结果。
我对 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
的列表中获取结果。