#java #hibernate #jpa #lob
#java #переход в спящий режим #jpa #подбросить
Вопрос:
В нашем приложении Spring мы используем Spring JPA. Мы определили объект, подобный этому:
@Entity
public class Cat{
// ....
//@Lob <-- only if OracleDB is used
@Column
private String description;
}
Приложение может использоваться с различными базами данных. Поскольку большинство баз данных способны обрабатывать даже большие тексты внутри VARCHAR
столбца, мы решили использовать только столбец по умолчанию VARCHAR
для хранения описания.
Но теперь клиент хочет использовать свою базу данных Oracle. Поскольку существует сумасшедшее ограничение длины на VARCHAR
тип, мы должны использовать CLOB
в схеме базы данных.
Теперь главный вопрос заключается в том, есть ли возможность пометить соответствующие поля в объектах JPA как Lob, но только если во время выполнения используется диалект Oracle.
Комментарии:
1. Не могли бы вы предоставить список баз данных, которые использует ваше приложение.
2. Postgres в разных версиях, H2 и Oracle (новая). У нас также есть несколько используемых баз данных AWS (точное название пока не указано).
3.Кстати, длина oracle
VARCHAR2
может быть увеличена до32767
предела в байтах, включивMAX_STRING_SIZE
свойство.