#postgresql #hibernate #logging #amazon-rds #hql
Вопрос:
ну, мой вопрос , казалось бы, очень прост — у меня есть база данных POSTGRES AWS RDS, которая в моей среде prod выдает ОШИБКУ в журналах AWS
ERROR: operator does not exist: date = character varying at character 2387 HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
Теперь я знаю, почему по большей части происходит ошибка, мой уровень БД, который использует мой API (для вызова этой базы данных для чтения данных), использует Hibernate/JPA. Таким образом, у меня есть метод, который вызывает базу данных, и я передаю a java.util.Date
в качестве параметра, т. Е.
@Query(value = "SELECT employees FROM employeeEntity ee " "AND (ee.dob = :dateOfBirth or CAST(:dateOfBirth as java.util.Date) is null) " "AND te.first_nm = :firstNm " "AND te.last_nm = :lastNm " Listlt;employeeEntitygt; searchEmployee(@Param("dateOfBirth") Date dateOfBirth);
Так что, как я могу, это когда значение dateOfBirth
не равно нулю и оно используется в предложении фильтра для ee.dob = ?
. Я знаю, что изменения довольно-таки банально, но я хотел проверить, насколько быстро из конца в конец, и я пробовал несколько часов, и я мог совершенно не для жизни меня получить ДБ скинуть ошибки по типовому ( тот, который я написал выше) при прочих одинаковых данных баз данных в различных средах (не прод). Я поиграл с группами параметров в PROD AWS и включил разные типы ведения журнала (pgaudits, auto_analyse, pglog и т. Д.), А также разные уровни ведения журнала, и по какой-то чертовой причине я не смог реплицируйте вывод ошибок этого типа в журналах (хотя это все равно должно происходить, потому что я использую ту же кодовую базу). У меня определенно show-sql
включен API приложения (весенняя загрузка), но, похоже, это, скорее всего, ошибка Postgres в бэкэнде/БД, поэтому она не отображается ни в чем, кроме журналов базы данных Postgres RDS.
Как лучше всего просматривать эти журналы ошибок в базе данных Postgres? Есть ли какой-то уровень журнала, или какой-то АНАЛИЗ, который мне нужно сделать, или способ увидеть его в журналах Hibernate/JPA, когда я выполняю вызов API (сомневаюсь в этом, так как он, похоже, выбрасывается из Postgres). Кроме того, я предполагаю, что могу загружать postgres локально (localhost:5432) и просматривать вывод журнала ошибок более вручную, чем AWS RDS, хотя, я полагаю, мне потребуется заново создать все схемы и таблицы, которые я использую в своей реальной базе данных.
Anyone have any ideas how to validate my HQL is being casted correctly on all input edge cases?
I believe this would fix my query but again I just want to validate/test
@Query(value = "SELECT employees FROM employeeEntity ee " "AND (ee.dob = CAST(:dateOfBirth as java.util.Date) or CAST(:dateOfBirth as java.util.Date) is null) " "AND :firstNm is null or ee.first_nm = :firstNm " "AND :lastNm is null or ee.last_nm = :lastNm "