ListCodesエンティティであるクラスの CriteriaQuery 述語を設定しようとしています。MappedSuperClassListCodesと呼ばれるスーパークラスもあります。Auditable
これをやろうとすると
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;