2009-12-23 4 views
2

-je pu sauver (printemps-mise en veille prolongée saveorupdate()) Champne peut pas obtenir clob type de données de base de données dans l'entité JPA

@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, j'obtiens l'erreur

ERREUR - JDBCExceptionReporter.logExceptions (72) | ORA-00932: types de données incompatibles: prévu - a 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); 

Répondre

6

Ce n'est pas clair à partir de votre exemple de code, mais je suppose que vous essayez de trier par la colonne CLOB, et Oracle ne le permet pas. Ce code d'erreur est la manière charmante d'Oracle de vous le dire.

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

+0

vous avez raison. c'est le tri qui l'a causé – cometta

1

Avez-vous pataugé par ceci:

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

Il semble être un problème avec le pilote Oracle 9i et les LOB (ne savez pas quelle est votre configuration).

+0

j'ai mis à jour à 10gDialect mais toujours la même chose. – cometta

Questions connexes