Question

J'ai un "un à plusieurs" de la relation entre les deux tables.Le nombre de table contient une colonne de clob.La colonne de clob ressemble à ceci en veille prolongée:

@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 en gros, j'ai peut-être une Remarque avec certains subsitutions, dire "foo" et "fizzbuzz".Donc, dans ma table principale, j'ai pu avoir une Note avec l'id 4 et dans mon NOTE_JOIN_TABLE J'aurais deux lignes, "foo" et "fizzbuzz" que les deux ont une relation avec le Note.

Toutefois, lorsque l'un de ces est inséré dans la DB les plus grandes valeurs substitution sont rognés à être aussi longue que la plus courte. Donc dans ce cas je l'aurais "foo" et "fiz" dans la DB au lieu de "foo" et "fizzbuzz".

Avez-vous une idée pourquoi ce qui se passe?J'ai vérifié et confirmé qu'ils ne sont pas recadrées n'importe où dans notre code, c'est sans hésiter mise en veille prolongée.

Était-ce utile?

La solution

De nombreux pilotes JDBC, les premières versions d'Oracle, en particulier, ont des problèmes lors de l'insertion de LOBs.Avez-vous vous assurer que la requête Hibernate feux, avec les mêmes paramètres liés fonctionne avec succès dans votre pilote JDBC?

Autres conseils

LOB/CLOB colonne peut ne pas être assez grande.Hibernate a quelques défaut, la taille des colonnes pour LOB/CLOB qui sont relativement petites (peut dépendre de la db).De toute façon, essayer quelque chose comme cela:

@Lob 
@Column(length=2147483648)

Ajuster la longueur (en octets) en fonction de vos besoins.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top