J'ai une relation de un à plusieurs entre deux tables. La table plusieurs contient une colonne clob. La colonne clob ressemble à ceci en veille prolongée:Hibernate cultures valeurs clob curieusement
@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;
Donc, fondamentalement, je peut avoir une note avec quelques subsitutions, disons "foo"
et "fizzbuzz"
. Donc, dans ma table principale, je pourrais avoir une note avec l'ID 4 et dans mon NOTE_JOIN_TABLE
j'aurais deux lignes, "foo"
et "fizzbuzz"
qui ont tous deux une relation à la note. Toutefois, lorsque l'un d'entre eux est inséré dans le DB , les valeurs de substitution les plus grandes sont recadrées pour être aussi longues que la plus courte. Donc, dans ce cas, je voudrais "foo"
et "fiz"
dans la DB au lieu de "foo"
et "fizzbuzz"
.
Avez-vous une idée pourquoi cela se produit? J'ai vérifié et confirmé qu'ils ne sont recadrés nulle part dans notre code, c'est certainement hiberner.
Il s'est avéré être un problème avec notre pilote JDBC. La solution (jusqu'à ce que nous pouvons un pilote mis à jour) est de désactiver le traitement par lots. – SCdF