再次,根据我前几天遇到的问题发布和回答一个为他人谋福利的问题。希望这可以节省一些时间。我有点惊讶这没有内置到 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;
}