Querying on enum's method in Hiberate Criteria API

前端 未结 2 1053
心在旅途
心在旅途 2020-12-19 23:46

I have an @Entity which has an @Enumerated field mapped to it:

@Entity
@Table
public class Device implements Serializable {

    @I         


        
2条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-19 23:52

    You have anotated it as

    @Enumerated(EnumType.STRING)
    

    this will store the name of the enum. Your db column will have either "MOBILE" or "EMAIL" but not 'true' or 'false'. you can change your query to

     return factory.getCurrentSession().createCriteria(Device.class).
       add(Restrictions.eq("typeOfDevice", DeviceType.MOBILE)).list();
    

    Its more reable isn't?

提交回复
热议问题