J'ai une méthode simple qui fait juste deux lignes et essaie de retourner tous les objets dans une table de base de données Oracle:comportement étrange Hibernate findByCriteria
DetachedCriteria criteria = DetachedCriteria.forClass(Object.class);
return (Collection)getHibernateTemplate().findByCriteria(criteria);
Cependant, je me suis un « ORA-01031: privilèges insuffisants » erreur . Lorsque j'ai vérifié les journaux pour le show_sql, je trouve ceci:
Hibernate: select this_.NAME as NAME8_0_, from PL_VW this_ where ID=?
Hibernate: update PL_VW set NAME=? where ID=?
Hibernate: update PL_VW set NAME=? where ID=?
Hibernate: update PL_VW set NAME=? where ID=?
Hibernate: update PL_VW set NAME=? where ID=?
Hibernate: update PL_VW set NAME=? where ID=?
...
Pourquoi ne findByCriteria sélectionner un ID et faire plusieurs mises à jour? Doit-on mettre à jour l'accès pour toutes les tables accrochées à hiberner? Je ne souhaite pas que les tables soient mises à jour!
Ou est quelque chose qui ne va pas avec le code?
Merci d'avance.
Je ne sais pas pourquoi vous voyez des instructions UPDATE ici, mais je crois que DetachedCriteria.forClass (Object.class) retourne tous les objets mappés dans la base de données entière. Est-ce ce que vous vouliez? –
Je ne pense pas que les entrées de journal correspondent au code. Êtes-vous sûr que quelque chose ne va pas? – stevedbrown