Question

Je domaine capable de sauver (saveorupdate() ressort de mise en veille prolongée)

 @Lob
 @Column(name = "FILENAME")
 private String filename;

dans la base de données Oracle type de données est clob

mais lorsque je tente le récupérer, je reçois l'erreur

  

ERREUR -   JDBCExceptionReporter.logExceptions (72)   | ORA-00932: types de données incompatibles:   attendu - obtenu CLOB

ci-dessous est comment je retrive la base de données

DetachedCriteria crit = DetachedCriteria.forClass(Storagefile.class);
crit.addOrder(bSortOrder ? Order.asc(sortColumnId) : Order.desc(sortColumnId));
 List<Storagefile> result = (List<Storagefile>) getHibernateTemplate().findByCriteria(crit, nFirst, nPageSize);
Était-ce utile?

La solution

On ne sait pas à partir de votre exemple de code, mais je pense que vous essayez de trier par la colonne de CLOB et Oracle ne permet pas. Ce code d'erreur est une façon charmante d'Oracle de vous dire cela.

Êtes-vous sûr que vous devez utiliser un CLOB pour stocker un filnename? Oracle peut stocker jusqu'à 4000 caractères dans une colonne de VARCHAR2, sûrement c'est suffisant pour un nom de fichier? Si vous voulez trier par le filename, alors c'est ce que vous devez faire.

Autres conseils

Avez-vous pataugé par ceci:

https://www.hibernate.org/56.html

Il semble y avoir un problème avec le pilote Oracle 9i et LOB (pas sûr de ce que votre configuration est).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top