Спящие значения саба культур странно - PullRequest
1 голос
/ 10 сентября 2008

У меня есть отношение один ко многим между двумя таблицами. Таблица many содержит столбец clob. Столбец clob выглядит так в режиме гибернации:

@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". Таким образом, в моей основной таблице у меня может быть заметка с идентификатором 4, а в моем NOTE_JOIN_TABLE у меня будет две строки "foo" и "fizzbuzz", которые обе имеют отношение к заметке.

Однако, когда один из них вставляется в DB , большие значения замещения обрезаются до длины, кратчайшей. Так что в этом случае у меня будет "foo" и "fiz" БД вместо "foo" и "fizzbuzz".

У вас есть идеи, почему это происходит? Я проверил и подтвердил, что они нигде не обрезаны в нашем коде, это определенно спящий режим.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2008

Многие драйверы JDBC, в частности ранние версии Oracle, имеют проблемы при вставке больших объектов. Удостоверились ли вы, что запрос Hibernate с одинаковыми параметрами успешно работает в вашем драйвере JDBC?

0 голосов
/ 10 сентября 2008

LOB/CLOB столбец может быть недостаточно большим. Hibernate имеет некоторые размеры столбцов по умолчанию для LOB/CLOB, которые относительно малы (может зависеть от дБ) В любом случае, попробуйте что-то вроде этого:

@Lob 
@Column(length=2147483648)

Отрегулируйте длину (в байтах) в соответствии с вашими потребностями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...