在查询中使用Oracle对象时编译查询时发生JPA错误
以下JPA查询未编译-在查询中使用Oracle对象时编译查询时发生JPA错误,jpa,Jpa,以下JPA查询未编译- SELECT a FROM CUSTOMER a WHERE a.activeCustomer = 'N' AND a.customerInfo.city IN :cityName ORDER BY a.customerId 其中Oracle数据库中的表CUSTOMER有一个基类型-CUSTOMERINFO,该基类型又有不同的值,例如- 城市 国家 此基本类型CUSTOMERINFO由LOCALBUSINESSCUSTOMERINFO和MNCBUSINESSCUSTOM
SELECT a FROM CUSTOMER a WHERE a.activeCustomer = 'N' AND a.customerInfo.city IN :cityName ORDER BY a.customerId
其中Oracle数据库中的表CUSTOMER有一个基类型-CUSTOMERINFO,该基类型又有不同的值,例如-
城市
国家
此基本类型CUSTOMERINFO由LOCALBUSINESSCUSTOMERINFO和MNCBUSINESSCUSTOMERINFO以及其他一些扩展而成
我认为这可能是因为当我定义实体中的列时,我将其定义如下:
@Entity
@Table(name = "CUSTOMER", schema = "DBA")
@Converter(name="CustomerInfoConvertor", converterClass=CustomerInfoConvertor.class)
public class Customer implements Serializable {
@Basic
@Convert("CustomerInfoConvertor")
@Column(columnDefinition = "CUSTOMERINFO")
private ICustomerInfo customerInfo;
}
我已经尝试过使用SQL进行此查询,它工作得很好,但从JPA(JPQL)使用它会引发编译错误
谢谢你的帮助 您已经将customerInfo映射为basic,因此它是JPQL中的basic 该列属于对象类型 在EclipseLink 2.3中,您可以将其映射为可嵌入和@Struct注释,并使用来自客户的嵌入映射。customer表是否有其他列,还是类型表?如果它是一个类型表,那么使用@Struct来映射它