1

私はこのようなマップされたスーパークラスを持っています:

@MappedSuperclass
@DiscriminatorColumn(name = "USER_TYPE")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@NamedQueries({
        @NamedQuery(name = "selectAllUsers", query = "SELECT u FROM User u"),
        @NamedQuery(name = "deleteUserByName", query = "DELETE FROM User u WHERE u.userName like :name"),
        @NamedQuery(name = "getUserByName", query = "SELECT FROM User u WHERE u.userName like :name") })
public abstract class User implements Serializable {....

名前付きクエリで「抽象スキーマ タイプ 'User' は不明です」というエラーが表示されます。理由がわかりません...ユーザーという名前は正しいですか?

どんな提案でも大歓迎です。

4

1 に答える 1

2

これは予期される JPA の動作です。マップされたスーパークラスは照会できません (JPA 2.0 仕様のセクション 2.11.2 を参照)。スーパークラスをクエリ可能にする場合は、アノテーションを から@MappedSuperclassに変更し@Entityます。

于 2013-02-08T13:57:15.680 に答える