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;