Sto lavorando per passare il mio provider di persistenza JPA da EclipseLink 2.3 a Hibernate 3.6.5.Final. Il problema è con una query nativa. Nota: questo non era un problema con EclipseLink. Sto cercando di ottenere un valore scalare, un String
da una tabella per la quale non ho dichiarato un'entità. Ecco il codice:getSingleResult restituisce il proxy sulla query scalare nativa in sospensione
Query q = em.createNativeQuery("select description from foo where foo_id = ?");
q.setParameter(1, fooId);
String description = (String)q.getSingleResult();
con Hibernate ottengo un ClassCastException
perché l'oggetto restituito è in realtà un oggetto proxy. Non so di che tipo si tratta, ma so che non è un array (object.getClass().isArray()
è falso) e so che non è un elenco (object instanceof List
è false
).
Cosa mi manca?
Quali interfacce restituisce 'q.getSingleResult(). GetClass(). GetInterfaces()'? –
Ahhh ... era quello di cui avevo bisogno. È di tipo java.sql.Clob, org.hibernate.engine.jdbc.WrappedClob e java.io.Serializable. Se lo fai una risposta, lo accetto. Non mi ero nemmeno reso conto che la colonna fosse un clob e sono sorpreso che EclipseLink stia facendo la conversione in String per me. – Ryan
felice di poterti aiutare! –