0

繰り返しになりますが、先日抱えていた問題に基づいて、他の人の利益のために質問を投稿して回答しています。うまくいけば、これで誰かが少し時間を節約できます。これが JPA に組み込まれていないことに少し驚きましたEntityManager

NamedQueryエンティティに特定の名前の注釈があるかどうかを判断するにはどうすればよいですか?

@NamedQueryエンティティを実行する前に、エンティティに特定のものがあるかどうかを判断する必要があります。

4

1 に答える 1

1

注釈がネストされている場合、注釈のプロパティを取得して子を取得できます。@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;
}
于 2012-10-18T15:59:42.457 に答える