关于java枚举类型字段的查询

[code="java"]
public class Product(){

public enum NType {
NOTEBOOK/*笔记本*/,MOBILE/*手机*/,CAMERA/*相机 摄像机*/,MP34/*MP3,MP4*/,OTHERDIGITAL/*其它数码*/
}

private Long id;

private String name;

private NType nType;

//略去SET GET方法

}

[/code]

ORM框架用的是HIBERNATER
现在想要查询某一类产品 如手机类 我的HQL写法如下:
select p from Product p where p.nType='MOBILE' order by p.id desc;

当然这样得不到我想要的结果 每次他默认查笔记本类去了 不管我nType值是CAMERA还是MP34==

如果我不写where p.nType='MOBILE' 这个过滤条件 那么就不会默认查笔记本类型的PRODUCT了 所以我想是我的枚举类型的查询写错了 不是这样写

因为用原生的SQL可以实现

请那位过路的神仙帮忙下 谢了

[b]问题补充:[/b]
[code="java"]
@Entity

public class Product(){

public enum NType {

NOTEBOOK/*笔记本*/,MOBILE/*手机*/,CAMERA/*相机 摄像机*/,MP34/*MP3,MP4*/,OTHERDIGITAL/*其它数码*/

}

//略去注解

private Long id;

//略去注解

private String name;

[b]@Column(name="gtype")[/b]

private NType nType;

//略去SET GET方法

}

[/code]

你应该用动态设置查询条件的参数
String hql = "select p from Product p where p.nType=? order by p.id desc";

query.setParameter(0,NType.MOBILE);

你的配置文件,对nType是怎么配置的。