【发布时间】:2014-08-28 09:29:16
【问题描述】:
我有:
@Column(name = "UserType", nullable = false)
@Enumerated(EnumType.STRING)
private UserType userType;
如何使用 addScalar() 方法通过 SQL 请求返回该字段?
【问题讨论】:
标签: java hibernate jpa orm hibernate-mapping
我有:
@Column(name = "UserType", nullable = false)
@Enumerated(EnumType.STRING)
private UserType userType;
如何使用 addScalar() 方法通过 SQL 请求返回该字段?
【问题讨论】:
标签: java hibernate jpa orm hibernate-mapping
这就是将枚举添加到 SQLQuery 的方式
你定义一个属性对象
Properties params = new Properties();
params.put("enumClass", "UserType");
params.put("type", "12"); /*EnumType.STRING type = 12 */
你解决了你的枚举类型:
Type userEnumType = sessionFactory.getTypeHelper().custom(UserType.class, params);
你执行你的查询:
List<SomeEntity> result = getSession().createSQLQuery("select e from SomeEntity ")
.addScalar("userType", userEnumType)
.setResultTransformer(Transformers.aliasToBean(SomeEntity.class))
.list();
【讨论】: