因此,我已经搜索了很多,似乎无法找到答案。我有两个使用相同DB2数据库的应用程序。一个使用Hibernate,另一个使用仅本机ResultSet,PreparedStatement等。
例如,假设我有一个主键为“ ABC”的对象。数据库的键长度定义为3。如果我使用spring仓库findOne(“ ABC”),它将返回我的对象。但是奇怪的是,如果我调用findOne(“ ABC123456”),它将仍然返回相同的数据库行,除了对象中的关键字段为“ ABC123456”。
现在,如果我使用PreparedStatement在另一个应用程序上运行本机查询,将发生相同的事情,除了在这种情况下,主键已在ResultSet中正确返回。
假设这是数据库问题,但不确定要看什么。数据库列设置为CHAR(3)。