Так что я довольно долго искал и не могу найти ответ на этот вопрос.У меня есть два разных приложения, которые общаются с одной и той же базой данных DB2;один использует Hibernate, а другой использует только собственный ResultSet, PreparedStatement и т. д.
Скажем, например, у меня есть объект, первичный ключ которого - "ABC".В базе данных эта длина ключей определена как 3. Если я использую пружинные репозитории findOne ("ABC"), она возвращает мой объект.Но странно то, что если я вызываю findOne ("ABC123456"), он все равно возвращает ту же строку базы данных, за исключением того, что ключевое поле в объекте - "ABC123456".
Теперь, если я запускаю собственный запрос нав другом приложении, использующем PreparedStatement, произойдет то же самое, за исключением того, что в этом случае первичный ключ возвращается в ResultSet правильно.
Предполагая, что это проблема с БД, но не уверен, что посмотреть.Столбец базы данных настроен как CHAR (3).