Я новичок в hibernate, но у меня есть приблизительное представление о том, что обычно делать, в этом случае я не могу сказать, что это работает. Я пытаюсь создать систему фильтрации, которая позволяет вам сортировать разных клиентов в этом случае с пользователями. Мой SQL-запрос работает правильно:
SELECT * FROM [de_user_site] WHERE [deactivation_time] = '9999-12-31 00:00:00.000' AND [user_id] IN (SELECT [user_id] FROM [de_users] WHERE [client_id] = 1)
И я попытался превратить это в Java-запрос:
queryStr = "SELECT e FROM DeSiteUser e " + queryStr;
String queryStr = " WHERE e.deactivationTime = '9999-12-31 00:00:00.000' ";
if (clientId != null) {
queryStr += String.format("AND e.userId IN (SELECT id FROM DeUser u WHERE ");
if (clientId != null) {
queryStr += String.format("u.clientId = %d ", clientId);
}
}
Однако у меня возникла проблема с этим:
Internal Server Error [#500]: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found 'null' near line 1, column 214 [SELECT e FROM com.velatt.dartentitlements.domain.DeSiteUser e WHERE e.deactivationTime = '9999-12-31 00:00:00.000' AND e.userId IN (SELECT id FROM com.velatt.dartentitlements.domain.DeUser u WHERE u.clientId = 6 ]
Кто-нибудь знает, что я забыл, мой SQL-запрос правильный, но я не понимаю, почему он не сработал для Java-запроса?