Использование: - Postgres: PostgreSQL 10.0 Hibernate: 4.0.1
У меня есть следующая таблица примеров, созданная в Postgres
CREATE TABLE Automobile
(id SERIAL
,name VARCHAR(20)
,year INTEGER
);
Я создал домен класса Automobile.
У меня есть следующий запрос критерия гибернации, чтобы вернуть все имена для определенного года.
final Criteria criteria = session.createCriteria (Automobile.class);
criteria.add (Restrictions.eq ("year", 1 ));
List<Automobile> list = criteria.list();
Однако list () генерирует следующее исключение.
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
Поэтому я изменил запрос, чтобы передать строковое значение для «года»: -
criteria.add (Restrictions.eq ("year", new String("1")));
List<Automobile> list = criteria.list();
Однако list () генерирует другое исключение.
org.hibernate.exception.SQLGrammarException: ERROR: operator does not exist: integer = character varying
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Position: 1145
Любые мысли очто может быть причина и решение, которое вернет мне список совпадений, пожалуйста?
Спасибо, Пит.