我有一个现有的数据库,两个表是基于一个字符串连接的。问题是一个表列被定义为 varchar2 而另一个是 char。Oracle 将用空格填充字符,而 varchar2 不会,因此当JPA尝试加入这两个时,一个有空格,一个没有,因此不满足相等性。
我怎样才能让加入JPA工作?是否有JPA注释可以解决问题?
我最后做的是使用@Subselect。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@javax.persistence.Entity
@Table( schema="SECURITYDBO", name = "XREFERENCE")
@Subselect("SELECT " +
" ,cast( trim(aCharColumn) as varchar(100) ) AS aCharColumn" + // 需要修剪以使 JPA INNER 加入 2 个表之间,这是一个 VARCHAR 并且这个表不会有任何空格填充
“FROM MYTABLE”)
public class MyJPA extends XReference{
....