Уничтожение потерпела неудачу с HibernateJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Уничтожение потерпела неудачу с Hibernate

Сообщение Anonymous »

У меня есть модульный тест, который использует Hibernate для проверки работы некоторых операторов HQL.
К сожалению, модульный тест не удался, поскольку в коде Hibernate есть подтверждение. >
См.: https://github.com/hibernate/hibernate- ... .java#L315

Код: Выделить всё

  assert querySource == CRITERIA;
< /code>
< /blockquote>
Как деактивировать их утверждения? >public String translateHql(final String hql, final SharedSessionContractImplementor session,
final String queryName) {
QueryEngine queryEngine = session.getFactory().getQueryEngine();
HqlTranslator hqlTranslator = queryEngine.getHqlTranslator();
SqmSelectStatement sqmSelectStmt = null;
try {
sqmSelectStmt = (SqmSelectStatement) hqlTranslator.translate(hql, null);
} catch (SemanticException e) {
LOG.log(Level.SEVERE, hql, e);
}
if (sqmSelectStmt == null) {
throw new RuntimeException("This is not a select-query!");
}
SqlAstCreationContext sqlAstContext = session.getFactory();
QueryParameterBindings paramBindings = QueryParameterBindingsImpl.from(ParameterMetadataImpl.EMPTY,
session.getSessionFactory());
SqmTranslator sqmTranslator = queryEngine.getSqmTranslatorFactory().createSelectTranslator(
sqmSelectStmt, QueryOptions.NONE, DomainParameterXref.from(sqmSelectStmt), paramBindings,
new LoadQueryInfluencers(session.getFactory()), sqlAstContext, true);
SqmTranslation sqmTranslate = null;
try {
sqmTranslate = sqmTranslator.translate();
} catch (ClassCastException e) {
throw new RuntimeException("I could not translate '" + queryName + "' to SQM!", e);
}
SelectStatement sqlStatement = sqmTranslate.getSqlAst();
SqlAstTranslatorFactory sqlTranslatorFactory = session.getFactory().getJdbcServices().getJdbcEnvironment()
.getSqlAstTranslatorFactory();
SqlAstTranslator sqlAst = sqlTranslatorFactory
.buildSelectTranslator(session.getFactory(), sqlStatement);
JdbcParameterBindings jdbcParam = new JdbcParameterBindingsImpl(0);
JdbcOperationQuerySelect sqlSelect = sqlAst.translate(jdbcParam, QueryOptions.READ_ONLY);
return sqlSelect.getSqlString();
}
< /code>
Это тест-метод: < /p>
public void test(){
assert "select \"account\".\"id\" as \"account0_id\" from account;".equals(service.translateHql("SELECT id FROM Account", session, "Select-test"));
}
Еще одна проблема заключается в этом утверждении:

Код: Выделить всё

java.lang.AssertionError
at org.hibernate.query.internal.ParameterMetadataImpl.(ParameterMetadataImpl.java:92)
См. https://github.com/hibernate/hibernate- ... tadataImpl. java#L60

Код: Выделить всё

assert !queryParameters.isEmpty();


Подробнее здесь: https://stackoverflow.com/questions/793 ... -hibernate
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»