2014-02-28 53 views
0

我正在用Netbeans(Maven Web應用程序)使用Spring MVC和Hibernate開發Web應用程序。我有一個抽象類(用戶)與多個具體類(父,孩子等)。我選擇了一個按層次結構的表格,這樣我就有了一張包含這些具體類的所有對象的表。但是我找不到一種方法來獲得某個具體類的所有對象。我收到以下錯誤:如何用hibernate獲取具體表中的具體類的所有對象?

java.lang.IllegalArgumentException異常:對TypedQuery [domain.Parent]指定的類型與查詢返回類型不兼容[類domain.User]

任何人誰知道我怎麼可以施展這些對象?

+3

可你也發表您的查詢和代碼調用它嗎? – Julien

+0

我使用HQL和Query-class來解決它。那麼,我希望我做的,我檢查了我的查詢的返回類的類,它說父母 – TheCodeNoob

回答

0

你應該有一個鑑別columen在你的BD,和這樣的一個映射:

@DiscriminatorColumn(name="TYPE", discriminatorType=DiscriminatorType.INTEGER) 
public abstract class User { 

和:

@DiscriminatorValue("1") 
public class Parent extends User { 

然後你就可以在你的查詢使用屬性類。例如:

getSession().createCriteria(User.class).add(Restrictions.eq("class", 1)) 

或HQL:

FROM User WHERE class = 1 
+0

我使用了HQL: String hql =「FROM User WHERE type ='parent'」; 查詢查詢= em.createQuery(hql); return query.getResultList(); 非常感謝! – TheCodeNoob

相關問題