У меня есть @Entity
, в котором отображается поле @Enumerated
:
@Entity
@Table
public class Device implements Serializable {
@Id
@GeneratedValue
private Long id;
@Enumerated(EnumType.STRING)
private DeviceType typeOfDevice;
[....]
}
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;
}
}
Как я могу запросить Device
сущностей, которые имеют typeOfDevice.isFubar() == true
?
return factory.getCurrentSession().createCriteria(Device.class).
add(Restrictions.eq("typeOfDevice.isFubar", true)).list();
не выполняет работу так же хорошо, как:
return factory.getCurrentSession().createCriteria(Device.class).
createCriteria("typeOfDevice").add(Restrictions.eq("fubar", true)).list();