您的位置:首页 > 其它

hibernate hql语句如何获取枚举类型

2013-10-14 16:52 337 查看
对枚举Enum类中的valueOf()方法的理解

查看API文档知:返回带指定名称的指定枚举类型的枚举常量。名称必须与在此类型中声明枚举常量所用的标识符完全匹配。(不允许使用额外的空白字符。)

//解释上面红色一行的意思:即:我下面的方法public List<OrderProductEntity> queryByStatus(String status) 这里传过来的字符串必须与枚举重对象一致,不然找不到该枚举类型。

import com.ece.ec.entity.api.StringValuedEnum;

public enum OrderStatus implements StringValuedEnum {

CREATED("新订单"), APPROVED("确认")

,DEPOSIT("定金已付"),PAID("付清")

CANCELLED("取消");

//对这个枚举说明一下CREATED是枚举对象 新订单是CREATED枚举对象的值

//System.out.println(OrderStatus .CREATED); 输出的结果是CREATED
而不是CREATED("新订单")

// System.out.println(OrderStatus .CREATED.getValue()); 输出的结果是 新订单

private String value;

OrderStatus(String value) {

this.value = value;

}

@Override

public String getValue() {

return value;

}

}

//String status假设传递过来的是CREATED

public List<OrderProductEntity> queryByStatus(String status) {

OrderStatus statu = Enum.valueOf(OrderStatus.class, status); //根据传过来的字符串CREATED 找到OrderStatus statu枚举

String hql ="from OrderProductEntity op where op.status=?";

List<OrderProductEntity> lst = getHibernateTemplate().find(hql, statu); //将找到的枚举statu 传到hql语句中

getHibernateTemplate().flush();

getHibernateTemplate().clear();

return lst;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: