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

对枚举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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值