【发布时间】:2014-09-17 18:47:45
【问题描述】:
在我的项目表中,我有一个枚举列来描述该项目的状态:
@Enumerated(EnumType.STRING)
@Column(name="status")
private ItemStatus status;
然后,当我将商品添加到购物车时,我想使用此查询列出购物车中的所有商品:
select i.* from item as i inner joint cart as c on i.item_id = c.item_id
where c.owner_id=:owner_id group by i.item_id
上面的结果如我所料返回。但是,我还想获得有关该项目所有者的更多详细信息,因此我将查询更改为:
select i.*, u.* from item as i inner join cart as c on i.item_id = c.item_id
inner join customer as u on i.owner_id = u.customer_id
where c.owner_id = :owner_id group by i.item_id, u.customer_id
SQLQuery query = session.createSQLQuery(queryname);
List<Object[]> result = query.addEntity(Item.class)
.addEntity(Customer.class)
.setParameter("owner_id", owner_id)
.list();
通过第二个查询,我在状态列上得到了枚举类的未知名称值。我想知道为什么第一个查询但第二个查询有异常。在休眠中获取枚举列的正确方法是什么?
这是我的枚举类
public enum ItemStatus {
ACTIVE, UNAVAILABLE;
}
【问题讨论】: