我有一个映射到它@Entity的@Enumerated字段:
@Entity
@Table
public class Device implements Serializable {
@Id
@GeneratedValue
private Long id;
@Enumerated(EnumType.STRING)
private DeviceType typeOfDevice;
[....]
}
Run Code Online (Sandbox Code Playgroud)
DeviceType 是典型的java 5枚举:
public enum DeviceType {
MOBILE(true), EMAIL(false);
private final boolean fubar;
private DeviceType(boolean fubar) {
this.fubar= fubar;
}
public boolean isFubar() {
return fubar;
}
}
Run Code Online (Sandbox Code Playgroud)
我如何查询Device具有typeOfDevice.isFubar() == true哪些实体?
return factory.getCurrentSession().createCriteria(Device.class).
add(Restrictions.eq("typeOfDevice.isFubar", true)).list();
Run Code Online (Sandbox Code Playgroud)
是不是做这个工作:
return factory.getCurrentSession().createCriteria(Device.class).
createCriteria("typeOfDevice").add(Restrictions.eq("fubar", true)).list();
Run Code Online (Sandbox Code Playgroud)