我有一个像这样的映射父类(super class):
@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 这个名字是对的?
欢迎任何建议。
最佳答案
这是预期的 JPA 行为。映射的父类(super class)不可查询(请参阅 JPA 2.0 规范,部分
2.11.2)。如果您想让父类(super class)可查询,请将注释从 @MappedSuperclass
更改为 @Entity
。
关于java - 映射父类(super class)和命名查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773995/