Hibernate @ManyToOne нечувствителен к региструJAVA

Программисты JAVA общаются здесь
Anonymous
Hibernate @ManyToOne нечувствителен к регистру

Сообщение Anonymous »

У нас есть две такие таблицы Oracle:

Код: Выделить всё

TABLE_1
-------
CODE_TABLE_1  | LIBEL_TABLE_1
-----------------------------
code_table_1.1| libel_table_1.1
code_table_1.2| libel_table_1.2
code_table_1.3| libel_table_1.3

TABLE_2
-------
CODE_TABLE_2  | LIBEL_TABLE_2    |  CODE_TABLE_1
----------------------------------------------
code_table_2.1| libel_table_2.1  | CODE_TABLE_1.1
code_table_2.2| libel_table_2.2  | CODE_TABLE_1.2
code_table_2.3| libel_table_2.3  | CODE_TABLE_1.3
между двумя таблицами нет внешнего ключа, но вы можете видеть, что столбец CODE_TABLE_1 в TABLE_2 ссылается на тот же столбец в TABLE_1, но всегда в верхнем регистре.
Теперь я хочу создать объекты для спящего режима и установить связь между двумя объектами, игнорируя эту разницу в регистре, например:

Код: Выделить всё

@Table(name = "TABLE_1")
@Entity
@Data
public class Table1{

@Id
@Column(name = "CODE_TABLE_1")
private String codeTable1;

@Column(name = "LIBEL_TABLE_1")
private String libeleTable1;
}

@Table(name = "TABLE_2")
@Entity
@Data
public class Table2{

@Id
@Column(name = "CODE_TABLE_2")
private String codeTable2;

@Column(name = "LIBEL_TABLE_2")
private String libeleTable2;

@ManyToOne
@JoinColumn(name = "CODE_TABLE_1", referencedColumnName = "CODE_TABLE_1")
private Table1 table1;
}
Проблема, как вы и ожидали, заключается в том, что эта связь не работает, поскольку между данными существует разница в регистре.
Мой вопрос: если есть любой способ сделать эти отношения нечувствительными к регистру.
PS: Мы не можем напрямую изменить данные в источнике таблицы Oracle, чтобы создать тему с тем же регистром

Подробнее здесь: https://stackoverflow.com/questions/785 ... nsensitive

Вернуться в «JAVA»