【发布时间】:2014-05-12 19:28:25
【问题描述】:
一段时间以来,我在eclipselink映射中遇到了问题。
我有两个类,Acordo 和 ValorAcordo。
所以我有
@ Entity
@ Table ( name = " TB_ACORDO " , schema = " JUR " )
@ NamedQueries ( {
@ NamedQuery ( name = " sql1 "
query = " SELECT a.NU_ACORDO , a.NU_MOVIMENTACAO , v.NU_CONTRATO "
+ "FROM Acordo"
+ " INNER JOIN ValorAcordo v"
+ "ON a.NU_ACORDO = v.NU_ACORDO "
+ " WHERE = a.NU_MOVIMENTACAO : nu_movimentacao " )
} )
public class Acordo implements Serializable {
private static final long serialVersionUID = - 6202293050832719017L ;
@ Id
@ GeneratedValue ( strategy = GenerationType.IDENTITY )
private Long NU_ACORDO ;
private Long NU_MOVIMENTACAO ;
private Long VR_TOTAL ;
@ OneToOne ( fetch = FetchType.LAZY )
private ValorAcordo valorAcordo ;
// ***
和
@ Entity
@ Table ( name = " TB_VALOR_ACORDO " , schema = " JUR " )
public class ValorAcordo implements Serializable {
private static final long serialVersionUID = 3024868010888830368L ;
@ Id
@ GeneratedValue ( strategy = GenerationType.IDENTITY )
private Long NU_VALOR_ACORDO ;
private Long NU_ACORDO ;
private Long NU_CONTRATO ;
private Long NU_PARTE ;
private Long QT_PARCELA ;
private Long VR_ACORDO ;
@ Temporal ( TemporalType.TIMESTAMP )
private Date DT_PRIMEIRA_PARCELA ;
@ Temporal ( TemporalType.TIMESTAMP )
private Date DT_ULTIMA_PARCELA ;
@ OneToOne ( fetch = FetchType.LAZY )
private acordo;
// ***
当我跑步时
Query q = em.createNamedQuery ( " sql1 " Acordo.class )
. setParameter ( " nu_movimentacao " 3103461 );
List <Acordo> q.getResultList list = ( ) ;
EclipseLink 返回以下错误:
Exception in thread " main" java.lang.ClassCastException : [ Ljava.lang.Object ; can not be cast to br.victor.des.bean.Acordo
at br.victor.des.main.MainAcordo.main ( MainAcordo.java : 46)
有什么想法吗?
我认为这是一个映射问题,但发现一个链接 eclipsebug 一些开发人员报告了这个错误。但是他们在简单查询时遇到了这个问题,我只有在使用 JOIN 时才会遇到这个问题!
谢谢
【问题讨论】:
标签: java jakarta-ee jpa eclipselink named-query