1. 程式人生 > >Hibernate HQL查詢異常:java.lang.ClassCastException解決

Hibernate HQL查詢異常:java.lang.ClassCastException解決

有時候,我們查詢只需要查詢bean的某一個部分,而不需要它所有的屬性,這時候HQL就可以這樣寫:

假設有一個類User(省略getter setter):

public class User {
	private String name;
	private int age;
	private boolean sex;

}
如果只需要查詢姓名和年齡,則HQL可以這樣寫:select new User(name,age) from User;

此時實體類中需要有一個new User(name,age) 這樣的構造方法。

問題來了,有時候我們的實體類和某些lib中的java類會有衝突,比如我遇到的問題就是:我有一個bean叫Member,結果用上述HQL的時候就報了java.lang.ClassCastException異常。

原因:存在同名的java類,這是導致這個異常的原因之一。

解決方法:給bean加上具體路徑:如     select new com.exampley.User(name,age) from com.exampley.User;