Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(Contact.class)
.add(Restrictions.like("gender", "male", MatchMode.ANYWHERE)));
List<Object[]> contactList = criteria.list();
在哪裏性別是枚舉類型列在Contact.java
@Entity
@Table(name = "contact_master")
public class Contact {
public enum Gender {
MALE,FEMALE
}
@Column(name = "gender")
@Enumerated(EnumType.STRING)
private Gender gender;
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
}
當我上面的代碼運行我得到像例外:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Enum
我認爲這是一個可愛的黑客,但爲什麼不休眠處理它呢? – IntelliData
@IntelliData枚舉時,在這方面做一個通用的行爲在邏輯上有點困難,因爲枚舉也可以通過使用'EnumType.ORDINAL'存儲爲數字,所以我假定作者只是選擇了一致所有案件的行爲。 –
可惜有沒有辦法downvote休眠功能....;) – IntelliData