ne peut pas obtenir la base de données clob type de données dans l'entité JPA
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);
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).