java - 如何使用非实体超类引用 CriteriaQuery 中的子类字段
问题描述
ListCodes
我正在尝试为作为实体的类设置 CriteriaQuery 谓词。ListCodes
还有一个称为Auditable
MappedSuperClass 的超类。
当我尝试这样做时
CriteriaQuery < ListCodes > criteriaQuery = builder.createQuery(ListCodes.class);
Root < ListCodes > listCodesRoot = criteriaQuery.from(ListCodes.class);
Predicate predicate = builder.equal(listCodesRoot.get("codeTypeCode"), "STATUSIND");
criteriaQuery.where(predicate);
我收到一个异常,codeTypeCode
无法在Auditable
. 但是,当我尝试使用treat
并为其创建根的替代解决方案时Auditable
,我遇到了一个异常,即 Auditable 只是一个 MappedSuperClass 所以我不能使它成为根。
这里的正确解决方案是什么?如何在 MappedSuperClass 的子类上使用 CriteriaQuery?
编辑:这是 Auditable 和 ListCodes 的相关标题
@MappedSuperclass
@EntityListeners({AuditListener.class})
@XmlRootElement(namespace=WebServiceConstants.MESSAGES_NAMESPACE)
@XmlType(namespace=WebServiceConstants.MESSAGES_NAMESPACE)
public class Auditable {
@Entity
@Table (name="TB_LIST_CODE")
public class ListCodes extends Auditable implements java.io.Serializable {
@Column(name="CODE_TYPE_CODE")
private String codeTypeCode;
解决方案
推荐阅读
- c# - 为什么我在 DataGridView 中有问号而不是文本?
- pine-script - 错误!.. 不能使用可变变量作为安全函数的参数
- git - git diff --name-only --diff-filter=U 修复冲突后输出冲突的文件名
- mysql - 使用单独的行集在循环中查询公用表表达式
- sql - 拆分列并删除 NULL
- react-native - 如何在 React Native ScrollView/Flatlist 中翻转页面
- javascript - GET请求后保存页面数据?
- plugins - Pytest-xdist 无法识别作为脚本执行的自定义 pytest 插件
- notifications - Microsoft Teams 中的通知徽章计数器
- sqlite - SQLite 3重复行违反唯一约束