【问题标题】:Joining on a varchar to a char does not work in JPA (oracle)将 varchar 加入 char 在 JPA(oracle)中不起作用
【发布时间】:2014-12-09 15:04:24
【问题描述】:

我有一个 现有 数据库,两个表基于一个字符串连接。问题是一个表列被定义为 varchar2 而另一个是 char。 Oracle 将用空格填充字符,而 varchar2 不会,因此当 JPA 尝试加入这两个时,一个有空格,一个没有,因此不满足相等性。

我怎样才能让加入在 JPA 中工作? 是否有 JPA 注释可以解决问题?

【问题讨论】:

  • “JPA”是一个接口;它什么也没做,所以不能工作或以其他方式工作。也许它不适用于您的 实现 (您没有说是哪一个),但它可能适用于不同的实现。没有你对“问题”的定义,一切都毫无意义

标签: java oracle jpa oracle10g varchar2


【解决方案1】:

我最后做的是使用@Subselect。

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@javax.persistence.Entity
@Table(schema="SECURITYDBO", name = "XREFERENCE")
@Subselect("选择" +
" ,cast( trim(aCharColumn) as varchar(100) ) AS aCharColumn" + // 需要修剪以便 JPA INNER 加入 2 个表之间,这是一个 VARCHAR 并且这个表不会填充任何空格
“来自 MYTABLE”)
公共类 MyJPA 扩展 XReference{
....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-10
    • 2012-11-09
    • 2011-01-18
    • 1970-01-01
    • 2017-03-22
    • 2017-04-21
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多