0

Spring MVC と Hibernate を使用して、Netbeans (Maven Web Application) で Web アプリケーションを開発しています。複数の具体的なクラス (親、子など) を持つ抽象クラス (ユーザー) があります。これらの具象クラスのすべてのオブジェクトを含む 1 つのテーブルができるように、階層ごとのテーブル構成を選択しました。しかし、特定の具象クラスのすべてのオブジェクトを取得する方法が見つかりません。次のエラーが表示されます。

java.lang.IllegalArgumentException: TypedQuery [domain.Parent] に指定された型は、クエリの戻り値の型 [class domain.User] と互換性がありません

これらのオブジェクトをキャストする方法を知っている人はいますか?

4

1 に答える 1

0

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
于 2014-02-28T17:00:37.843 に答える