У меня есть простой объект JPA с @ AdditionalCriteria , упомянутым для языка входа в систему. Я также указал перенаправитель запросов для этого класса. Когда я пытаюсь получить переведенную строку sql в перенаправителе запросов, я получаю исключение с нулевым указателем. Причина в том, что поле в сущности называется lang, а дополнительный параметр критерия - LOGIN_LANGUAGE. Исключение выдается, когда выполняется строка 273 класса org.eclipse.persistence.internal.expressions.ParameterExpression .
Моя сущность JPA выглядит так
@QueryRedirectors(allQueries=VPMQueryRedirector.class)
@AdditionalCriteria(value = "this.lang = :LOGIN_LANGUAGE")
public class AuthorityTextView extends EntityCommons implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "AUTHORITYID", length = 36)
private String authorityId;
@Id
@Column(name = "LANG", length = 2)
private String lang;
@Column(name = "AUTHORITYTEXT", length = 255)
private String authorityText;
@Column(name = "DEFAULTUSED")
private Boolean defaultUsed;
public String getAuthorityId() {
return authorityId;
}
public String getLang() {
return lang;
}
public String getAuthorityText() {
return this.authorityText;
}
public Boolean getDefaultUsed() {
return this.defaultUsed;
}
}
Мой перенаправитель запросов указан ниже
public class VPMQueryRedirector implements QueryRedirector {
private static final long serialVersionUID = 3912645701055442481L;
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public Object invokeQuery(DatabaseQuery query, Record arguments, Session session) {
query.setDoNotRedirect(true);
String translatedSQLString = query.getTranslatedSQLString(session, arguments);
}
Я создал ошибку в разделе eclipselink , но пока не было никаких обновлений, правильно ли наблюдение или нет.