我有一些 Oracle 表,其中一些 PK 字段定义为 CHAR(9),并且所有值都使用填充存储。
因此,我必须检索键字段中带有空格填充的所有对象。 但是,当 EclipseLink 将数据读入对象时,空格将被修剪掉。由于这种情况发生在 ID 值上,因此我无法使用 @PostLoad 来“修复” key ,使其包含空格。
我无法删除/更新对象,因为键值已更改为修剪后的值,并且任何更新/删除都会错过键值。
如何配置我的持久性单元,使其不会修剪 CHAR 列的值?
最佳答案
您可以使用 SessionCustomizer 来配置它,
public MyCustomizer implements SessionCustomizer {
public customize(Session session) {
session.getLogin().setShouldTrimStrings(false);
}
}
但一般来说,使用 CHAR 而不是 VARCHAR 通常是一个非常糟糕的主意。
关于oracle - 使用 eclipselink 时避免 CHAR 修剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352818/