Hibernate HQL question attend IDENT trouvé “*”
J'ai besoin d'aller ensemble de données relatif table donc je suis en utilisant somethink comme ceci (je voudrais l'utiliser dans sql)
private static final String SELECT_OOPR_TO_SEND = "SELECT R.* " +
"FROM offerOrderProjectRel R, offerOrder O, project P " +
"WHERE P.id = R.project_id and O.id = R.offer_order_id " +
"and O.type = 'ORDER' and (P.status = 'PENDING' or P.status ='PROTECTED')" ;
;
@SuppressWarnings("unchecked")
public List<OfferOrderProjectRel> findAllOfferOrderToSendToSalesmans() {
Query q = getSession().createQuery(SELECT_OOPR_TO_SEND);
List<OfferOrderProjectRel> list = q.list();
return list;
}
Après le lancement de ce code j'obtiens cette erreur :
org.mise en veille prolongée.hql.interne.ast.QuerySyntaxException: attend IDENT,
trouvé '* " à proximité de la ligne 1, colonne 10 [SELECT R. DE offerOrderProjectRel
R, offerOrder O, le projet P where P. id = R. project_id et O. id =
R. offer_order_id et O. type = 'COMMANDE' et (P. status = 'en ATTENTE' ou
P. status ='PROTÉGÉ')]
Alors, comment puis-je obtenir l'ensemble des données de la colonne R avec mise en veille prolongée?
Avez-vous essayé de R au lieu de R.*?
modifier la requête "select R à partir de". Omettre R.* C'est HQL syntaxe.
HQL travaille avec des entités, des champs et des associations. Jamais avec des tables et des colonnes. Ce n'est pas la même chose que SQL. S'il l'était, il serait nommée de SQL. Lire la documentation Hibernate.
merci les gars, ouais j'ai à lire de la documentation, de mon mauvais. Merci!
modifier la requête "select R à partir de". Omettre R.* C'est HQL syntaxe.
HQL travaille avec des entités, des champs et des associations. Jamais avec des tables et des colonnes. Ce n'est pas la même chose que SQL. S'il l'était, il serait nommée de SQL. Lire la documentation Hibernate.
merci les gars, ouais j'ai à lire de la documentation, de mon mauvais. Merci!
OriginalL'auteur lukaszrys | 2013-10-22
Vous devez vous connecter pour publier un commentaire.
La méthode
createQuery
s'attend à une requête HQL chaîne.HQL est un orientée objet en langage d'interrogation.
HQL interprète
SELECT R.*
sélectionner le champ membre*
de l'objetR
.Mais
*
n'est pas un champ de membre deR
. S'agit-il?..Pour sélectionner tous les champs des membres de
R
utilisation:OriginalL'auteur user2845946
vous utilisez une requête SQL, pas de requête hql, il devrait donc être
vous n'utilisez pas getSession(). vous avez besoin d'une SessionFactory pas EntityManager
OriginalL'auteur Apostolos