【问题标题】:Avoid CHAR-trimming when using eclipselink使用 eclipselink 时避免 CHAR-trimming
【发布时间】:2012-11-01 09:56:20
【问题描述】:

我有一些 Oracle 表,其中一些 PK 字段定义为 CHAR(9),并且所有值都使用填充存储。

因此,我必须在关键字段中检索所有带有空格填充的对象。 但是,当 EclipseLink 将数据读入对象时,空格会被剪掉。由于这发生在 ID 值上,因此我无法使用 @PostLoad 来“修复”密钥,使其包含空格。

我无法删除/更新对象,因为键值已更改为修剪后的值,并且键值上的任何更新/删除都未命中。

如何配置我的持久性单元,使其不会修剪 CHAR 列的值?

【问题讨论】:

    标签: oracle jpa char eclipselink trim


    【解决方案1】:

    您可以使用 SessionCustomizer 来配置它,

    public MyCustomizer implements SessionCustomizer {
      public customize(Session session) {
        session.getLogin().setShouldTrimStrings(false);
      }
    }
    

    但通常使用 CHAR 代替 VARCHAR 通常是一个非常糟糕的主意。

    【讨论】:

    • 这很好用,谢谢。我没有指定 CHAR 的用法,是的;这通常是个坏主意...
    • 酷..它工作...另外,在persistance.xml中指定这个条目
    猜你喜欢
    • 2012-01-11
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 2012-10-11
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多