Присоединение varchar к char не работает в JPA (оракул)

У меня есть существующая БД, в которой две таблицы объединены на основе строки. Проблема в том, что один столбец таблицы определяется как varchar2, а другой — как char. Oracle будет заполнять char пробелами, а varchar2 - нет, поэтому, когда JPA пытается соединить два, у одного есть пробел, а у другого нет, поэтому равенство не будет соблюдено.

Как заставить объединение работать в JPA? Есть ли аннотация JPA, которая поможет?


person KRico    schedule 09.12.2014    source источник
comment
JPA — это интерфейс; он ничего не делает, поэтому не может работать или иначе. Возможно, это не работает с вашей реализацией (вы не говорите, с какой именно), но, возможно, работает с другой реализацией. Без вашего определения проблемы все бессмысленно   -  person Neil Stockton    schedule 09.12.2014


Ответы (1)


Что я наконец сделал, так это использовал @Subselect.

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@javax.persistence.Entity
@Table(schema="SECURITYDBO", name = "XREFERENCE")
@Subselect("SELECT" + < br> " ,cast( trim(aCharColumn) as varchar(100)) AS aCharColumn" + // НЕОБХОДИМО ОБРЕЗАТЬ, ЧТОБЫ JPA ВНУТРЕННЯЯ СОЕДИНИЛАСЬ МЕЖДУ 2 ТАБЛИЦАМИ, КОТОРЫЕ ЯВЛЯЮТСЯ VARCHAR И ЭТОЙ НЕ БУДЕТ НИКАКИХ ПРОБЕЛОВ
"FROM MYTABLE")
открытый класс MyJPA extends XReference{
....

person KRico    schedule 11.12.2014