Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSP中的HQL请求_Jsp_Hql - Fatal编程技术网

JSP中的HQL请求

JSP中的HQL请求,jsp,hql,Jsp,Hql,我尝试在JSP中执行HQL请求,该请求引用Projet和Acteur之间的多对多关系。但我得到了这些错误: GRAVE: Servlet.service() for servlet [jsp] in context with path [/GestionDeProjet] threw exception [org.hibernate.QueryException: could not resolve property: Projet of: bean.Acteur [from bean.Acte

我尝试在JSP中执行HQL请求,该请求引用Projet和Acteur之间的多对多关系。但我得到了这些错误:

GRAVE: Servlet.service() for servlet [jsp] in context with path [/GestionDeProjet] threw exception [org.hibernate.QueryException: could not resolve property: Projet of: bean.Acteur [from bean.Acteur a join a.Projet p where p.libelle= :libelle]] with root cause
org.hibernate.QueryException: could not resolve property: Projet of: bean.Acteur
    at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83)
    at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:77)
    at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1978)
    at org.hibernate.hql.internal.ast.tree.FromElementType.getPropertyType(FromElementType.java:367)
    at org.hibernate.hql.internal.ast.tree.FromElement.getPropertyType(FromElement.java:500)
    at org.hibernate.hql.internal.ast.tree.DotNode.getDataType(DotNode.java:655)
    at org.hibernate.hql.internal.ast.tree.DotNode.prepareLhs(DotNode.java:275)
    at org.hibernate.hql.internal.ast.tree.DotNode.resolve(DotNode.java:219)
    at org.hibernate.hql.internal.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:126)
    at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:387)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.joinElement(HqlSqlBaseWalker.java:3903)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3689)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3567)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:708)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:564)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:301)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:249)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
    at 
这是我的JSP:

<%  String jo=request.getParameter("valeur"); 
 System.out.println(jo);
 %>
    <% Session session1=HibernateUtil.getSessionFactory().getCurrentSession();
    session1.beginTransaction();
    Query qry =  session1.createQuery("from Acteur a join a.Projet p where p.libelle= :libelle");
    qry.setString("libelle",jo);

    List list = qry.list();
    Iterator <Object[]>iter=list.iterator();
    while(iter.hasNext()){

        Object[] obj=iter.next();
        System.out.println(obj[0]+ " " + obj [1]);

    }
    %>

Acteur.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 25 avr. 2015 06:50:10 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="bean.Acteur" table="ACTEUR">
        <id name="idActeur" type="int">
            <column name="IDACTEUR" />
            <generator class="identity" />
        </id>
        <property name="nomActeur" type="java.lang.String">
            <column name="NOMACTEUR" />
        </property>
        <property name="prenomActeur" type="java.lang.String">
            <column name="PRENOMACTEUR" />
        </property>
        <property name="mailActeur" type="java.lang.String">
            <column name="MAILACTEUR" />
        </property>
        <property name="fonctionActeur" type="java.lang.String">
            <column name="FONCTIONACTEUR" />
        </property>
        <property name="roleActeur" type="java.lang.String">
            <column name="ROLEACTEUR" />
        </property>
        <set name="acteurProjets" table="PROJET_ACTEUR" inverse="true"
            lazy="true" fetch="select">
            <key>
                <column name="IDACTEUR" />
            </key>
            <many-to-many class="bean.Projet">
                <column name="ID" not-null="true" />
            </many-to-many>
        </set>
    </class>
</hibernate-mapping>

Projet.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 25 avr. 2015 06:50:10 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="bean.Projet" table="PROJET">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="identity" />
        </id>
        <property name="libelle" type="java.lang.String">
            <column name="LIBELLE" />
        </property>
        <property name="site" type="java.lang.String">
            <column name="SITE" />
        </property>
        <property name="finalite" type="java.lang.String">
            <column name="FINALITE" />
        </property>
        <property name="date_actuelle" type="java.lang.String">
            <column name="DATE_ACTUELLE" />
        </property>
        <property name="date_debut" type="java.lang.String">
            <column name="DATE_DEBUT" />
        </property>
        <property name="date_previsionnelle" type="java.lang.String">
            <column name="DATE_PREVISIONNELLE" />
        </property>
        <many-to-one name="domaine" class="bean.Domaine" fetch="join">
            <column name="IDDOMAINE" />
        </many-to-one>
        <set name="assignedActeurs" table="PROJET_ACTEUR" inverse="false"
            lazy="true" fetch="select" cascade="all">
            <key>
                <column name="ID" />
            </key>
            <many-to-many class="bean.Acteur">
                <column name="IDACTEUR" not-null="true" />
            </many-to-many>
        </set>
        <set name="assignedBénéficiaires" table="PROJET_BENEFICIAIRE"
            inverse="false" lazy="true" fetch="select" cascade="all">
            <key>
                <column name="ID" />
            </key>
            <many-to-many class="bean.Bénéficiaire">
                <column name="IDBENEFICIAIRE" not-null="true" />
            </many-to-many>
        </set>

        <many-to-one name="chefprojet" class="bean.Chefprojet"
            fetch="join">
            <column name="ID_CHEF" />
        </many-to-one>

    </class>
</hibernate-mapping>


我不想将代码Java和请求HQL放在JSP中,但事实上我必须将一个变量传递给这个JSP,而我无法在Servlet中获得它,即“jo”,因此,当我在JSP中获得它时,我将所有代码都放在那里。

我们也可以看到您的实体代码吗?显示您的hibernate实体。当然,我会编辑我的帖子。我不太熟悉hibernate中的xml标记,希望看到java实体。我认为你必须使用a.acterProjects而不是a.projectAh好的!我尝试了这个,我没有得到任何错误,但是没有显示结果,而是显示:bean。Acteur@5b96c221豆子。Projet@b48238f