相关疑难解决方法(0)

在Hiberate Criteria API中查询enum的方法

我有一个映射到它@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)

enums spring hibernate

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

enums ×1

hibernate ×1

spring ×1