代码之家  ›  专栏  ›  技术社区  ›  SCdF

冬眠作物clob值奇怪

  •  1
  • SCdF  · 技术社区  · 16 年前

    我在两张桌子之间有一对多的关系。多表包含CLOB列。CLOB列在Hibernate中如下所示:

    @CollectionOfElements(fetch = EAGER)
    @JoinTable(name = NOTE_JOIN_TABLE, joinColumns = @JoinColumn(name = "note"))
    @Column(name = "substitution")
    @IndexColumn(name = "listIndex", base = 0)
    @Lob
    private List<String> substitutions;
    

    所以基本上,我可能会有一个带有一些副词的便条,比如 "foo" "fizzbuzz" . 所以在我的主桌上,我可以有一张ID为4的便条。 NOTE_JOIN_TABLE 我要两排, “福” “费兹巴兹” 两者都与笔记有关系。

    但是,当其中一个插入数据库时 较大的替换值被裁剪为最短的值。 所以在这种情况下我会 “福” "fiz" 在数据库中而不是 “福” “费兹巴兹” .

    你知道这是为什么吗?我已经检查并确认在我们的代码中没有任何地方被剪切,这是绝对的休眠。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Binil Thomas    16 年前

    许多JDBC驱动程序,特别是Oracle的早期版本,在插入LOB时都存在问题。是否确保在JDBC驱动程序中使用相同的参数绑定触发查询Hibernate?

        2
  •  0
  •   Nicola Ben    6 年前

    LOB/CLOB 列可能不够大。Hibernate有一些默认列大小 罗布/克洛布 相对较小(可能取决于db)。无论如何,尝试如下操作:

    @Lob 
    @Column(length=2147483648)
    

    根据需要调整长度(字节)。