我有一个由两个 jpa 实体(继承)生成的表。所以我们在数据库表中生成了一个 DTYPE 列,该列具有实体名称和值。
如何编写 jpa 查询以获取任何给定实体的数据。即 DTYPE = 'A'?
我只是尝试在 jpa 查询中使用 DTYPE,但正如预期的那样,我收到一个错误“无法解析属性”。请让我知道如何编写此查询。
注意 - 我不想使用本机查询。
更新:
我有类 A 和扩展 A 的子类 AA。 DTYPE 有两个值 A 和 AA。
当我查询 A 时,我得到所有 A 加 AA 实体。查询A时如何排除AA?
小智 5
只需在父类中添加一个简单的字段数据类型即可。
@Column(insertable = false, updatable = false)
private String dtype;
Run Code Online (Sandbox Code Playgroud)
因此,您可以在 JPQL 查询中使用它
假设您有三个实体:
其中最后两个是您使用鉴别器列存储的两个实体,您的 JPA-QL 查询应该简单如下:
select p from Person p
Run Code Online (Sandbox Code Playgroud)
得到所有人。JPA 足够聪明,能够解决这个问题。同样你可以这样做:
select p from Party p
Run Code Online (Sandbox Code Playgroud)
并获得所有这些。
| 归档时间: |
|
| 查看次数: |
18606 次 |
| 最近记录: |