繰り返しになりますが、先日抱えていた問題に基づいて、他の人の利益のために質問を投稿して回答しています。うまくいけば、これで誰かが少し時間を節約できます。これが JPA に組み込まれていないことに少し驚きましたEntityManager
。
NamedQuery
エンティティに特定の名前の注釈があるかどうかを判断するにはどうすればよいですか?
@NamedQuery
エンティティを実行する前に、エンティティに特定のものがあるかどうかを判断する必要があります。
繰り返しになりますが、先日抱えていた問題に基づいて、他の人の利益のために質問を投稿して回答しています。うまくいけば、これで誰かが少し時間を節約できます。これが JPA に組み込まれていないことに少し驚きましたEntityManager
。
NamedQuery
エンティティに特定の名前の注釈があるかどうかを判断するにはどうすればよいですか?
@NamedQuery
エンティティを実行する前に、エンティティに特定のものがあるかどうかを判断する必要があります。
注釈がネストされている場合、注釈のプロパティを取得して子を取得できます。@NamedQueries
の場合は.value()
です。
public boolean hasNamedQuery(Class<?> clazz, String nameOfQuery) {
boolean foundQueryByName = false;
NamedQueries namedQueries = clazz.getAnnotation(NamedQueries.class);
if (namedQueries != null && namedQueries.value() != null) {
NamedQuery[] values = namedQueries.value();
for (int i = 0; i < values.length && !foundQueryByName; i++) {
foundQueryByName |= (nameOfQuery.equals(values[i].name()));
}
}
return foundQueryByName;
}