2

初めて私は次のように休止状態でプロシージャを呼び出そうとしています-

        Session session = HibernateUtil.getFirstFactory().getCurrentSession();
        session.beginTransaction();
        Query q = getSession().getNamedQuery("select");
        q.setInteger("locationid", locId);
        cDbInsts = (List<SpCustsitesettings>) q.list();

私のhbmファイルSpCustsitesettings.hbm.xmlは-

<hibernate-mapping>
<class name="glb.chatmeter.db.SpCustsitesettings">
    <id name="cmcustLocId" type="int">
        <column name="CMCustLocID"/>
    </id>
    <property name="cpid" type="string">
        <column name="CPID">
        </column>
    </property>
</class>
<sql-query name="select" callable="true">
    <return alias="select" class="glb.chatmeter.db.SpCustsitesettings">
        <return-property name="cmcustLocId" column="CMCustLocID" />
        <return-property name="cpid" column="CPID" />
    </return>
    <query-param name="locationid" type="int" />
{call select(:locationid)}
</sql-query>

そして私はこれを次のような設定ファイルに追加しました-

<mapping resource="xml/SpCustsitesettings.hbm.xml"/>

しかし、例外を表示してクエリを実行しようとすると-

java.lang.StackOverflowError
    at gnu.xml.pipeline.ValidationConsumer$ChildrenRecognizer.patchNext(ValidationConsumer.java:1570)
    at gnu.xml.pipeline.ValidationConsumer$ChildrenRecognizer.patchNext(ValidationConsumer.java:1591)
    at gnu.xml.pipeline.ValidationConsumer$ChildrenRecognizer.patchNext(ValidationConsumer.java:1580)
    at gnu.xml.pipeline.ValidationConsumer$ChildrenRecognizer.patchNext(ValidationConsumer.java:1580)
    at gnu.xml.pipeline.ValidationConsumer$ChildrenRecognizer.patchNext(ValidationConsumer.java:1591)
.............................................................................

そして、プログラムはオフになります。これが私の手順です-

 CREATE DEFINER=`root`@`%` PROCEDURE `select`(IN locationid INT)
BEGIN
    SELECT cmcustLocId, cpid FROM `custsitesettings` WHERE `CMCustLocID` = locationid;
END

私がフォローしていない問題は誰でも私を助けることができます。

4

1 に答える 1

0

問題はマッピング ファイルにありますSpCustsitesettings.hbm.xml

変化する

<hibernate-mapping>
.....

  <sql-query name="select" callable="true">
      <return alias="select" class="glb.chatmeter.db.SpCustsitesettings">
        <return-property name="cmcustLocId" column="CMCustLocID" />
         <return-property name="cpid" column="CPID" />
     </return>
     <query-param name="locationid" type="int" />
    {call select(:locationid)}
  </sql-query>
</hibernate-mapping>

<sql-query name="select" callable="true">
    <return alias="select" class="glb.chatmeter.db.SpCustsitesettings">
        <return-property name="cmcustLocId" column="CMCustLocID" />
        <return-property name="cpid" column="CPID" />
    </return>
    <query-param name="locationid" type="int" />
    <![CDATA[CALL select(:locationid)]]>
</sql-query>
于 2012-04-17T10:09:38.523 に答える