java - JPQL (Eclipse JPA procider) cannot call method on int -
so have following jpql in netbean jpql tool.
select e.idetu, e.nometu, e.prenometu,e.ddnetu etudiant e,inscrireclasse i, niveau n i.idniveau = n.idniveau , n.nomniveau='master 1'
when run dont know why there bug. below jpa log (it cannot call method on int...no idea means)
if run without i.idniveau = n.idniveau works perfectly
javax.persistence.persistenceexception: exception [eclipselink-4002] (eclipse persistence services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.databaseexception internal exception: com.microsoft.sqlserver.jdbc.sqlserverexception: cannot call methods on int. error code: 258 call: select t0.id_etu, t0.nom_etu, t0.prenom_etu, t0.ddn_etu gestion_des_notes.dbo.etudiant t0, gestion_des_notes.dbo.niveau t2, gestion_des_notes.dbo.inscrireclasse t1 ((t1.id_niveau = t2.id_niveau.t2.id_niveau) , (t2.nom_niveau = ?)) bind => [1 parameter bound] query: reportquery(referenceclass=etudiant sql="select t0.id_etu, t0.nom_etu, t0.prenom_etu, t0.ddn_etu gestion_des_notes.dbo.etudiant t0, gestion_des_notes.dbo.niveau t2, gestion_des_notes.dbo.inscrireclasse t1 ((t1.id_niveau = t2.id_niveau.t2.id_niveau) , (t2.nom_niveau = ?))") @ org.eclipse.persistence.internal.jpa.queryimpl.getdetailedexception(queryimpl.java:378) @ org.eclipse.persistence.internal.jpa.queryimpl.executereadquery(queryimpl.java:260) @ org.eclipse.persistence.internal.jpa.queryimpl.getresultlist(queryimpl.java:469) caused by: exception [eclipselink-4002] (eclipse persistence services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.databaseexception internal exception: com.microsoft.sqlserver.jdbc.sqlserverexception: cannot call methods on int. error code: 258 call: select t0.id_etu, t0.nom_etu, t0.prenom_etu, t0.ddn_etu gestion_des_notes.dbo.etudiant t0, gestion_des_notes.dbo.niveau t2, gestion_des_notes.dbo.inscrireclasse t1 ((t1.id_niveau = t2.id_niveau.t2.id_niveau) , (t2.nom_niveau = ?)) bind => [1 parameter bound] query: reportquery(referenceclass=etudiant sql="select t0.id_etu, t0.nom_etu, t0.prenom_etu, t0.ddn_etu gestion_des_notes.dbo.etudiant t0, gestion_des_notes.dbo.niveau t2, gestion_des_notes.dbo.inscrireclasse t1 ((t1.id_niveau = t2.id_niveau.t2.id_niveau) , (t2.nom_niveau = ?))") @ org.eclipse.persistence.exceptions.databaseexception.sqlexception(databaseexception.java:340) @ org.eclipse.persistence.internal.databaseaccess.databaseaccessor.basicexecutecall(databaseaccessor.java:682) ...
and if try switch positions writing n.idniveau = i.idniveau instead of i.idniveau = n.idniveau
local exception stack: exception [eclipselink-6076] (eclipse persistence services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.queryexception exception description: object comparisons can used onetoonemappings. other mapping comparisons must done through query keys or direct attribute level comparisons. mapping: [org.eclipse.persistence.mappings.directtofieldmapping[idniveau-->gestion_des_notes.dbo.niveau.id_niveau]] expression: [ query key idniveau base entity_classes.niveau] query: reportquery(referenceclass=etudiant jpql="select e.idetu, e.nometu, e.prenometu,e.ddnetu
from etudiant e,inscrireclasse i, niveau n n.idniveau = i.idniveau , n.nomniveau='master 1'")
Comments
Post a Comment