java - 映射父类(super class)和命名查询

标签 java jpa

我有一个像这样的映射父类(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/

相关文章:

java - 如果引用了某个元素的字段,该元素是否会被垃圾回收?

java - 欧拉计划 14 Java

java - 如何获取斯坦福解析器输出作为节点和边的列表?

java - 在方法中返回 List<?> 有什么用?

java - 测试应用程序是否在 Java 的 jar 文件中运行

java - Spring Data 存储库在创建时抛出 NPE

java - JPA 2.1 应用程序在重新部署到 WebLogic 12.2.1 时需要重新启动托管服务器

java - 如何找出 JPA @Entity 中列的长度?

java - 如何更新包含 "orphanRemoval=true"的 JPA 字段?

带有 Hibernate 的 SPRING JPA 更新所有实体实例,即使使用一个实体调用保存也是如此