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;
}
查看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;
}
相关文章推荐
- hibernate如何使用hql语句查询时间区间段
- 如何遍历枚举类型的对象、并获取枚举类型长度
- 如何在hibernate+mySQL中使用HQL的cast语句
- hibernate中hql语句获取名次rank()问题
- 如何遍历枚举类型的对象、并获取枚举类型长度
- Hql的select 语句返回Ilist<object[]>类型,如何转换为映射类型
- MSSQL 如何采用sql语句 获取建表字段说明、字段备注、字段类型、字段长度
- hibernate如何使用hql语句查询时间区间段
- hibernate使用createQuery(hql)语句仅查询部分字段,应如何获得数据
- C#中如何获取系统版本,内存大小,显卡类型,CPU型号
- Hibernate中HQL语句写法
- Hibernate中HQL语句
- Hibernate hql 查询指定字段并获取结果集
- hibernate:通用DAO+动态生成HQL语句
- switch case语句case后的枚举常量不带枚举类型
- Hibernate中的HQL模糊查询语句
- hibernate -- HQL语句总结
- hibernate使用查询语句hql
- hibernate hql 查询指定字段并获取结果集
- C语言如何获取某个数据类型或变量的大小?