0

サービス ビルダーのカスタム sql を使用しようとしましたが、default.xml ファイルからカスタム クエリを取得できません。デバッグしようとしましたが、 Student1FinderImpl の sql で null を返します。誰でも私を助けることができますか?これが私のコードです:default.xml

  <?xml version="1.0" encoding="UTF-8"?>
<custom-sql>
       <sql id="searchByNameStudent1">
              <![CDATA[
                     SELECT * FROM database_student1 WHERE name= ?
              ]]>
       </sql>
    </custom-sql>






 public class Student1FinderImpl extends BasePersistenceImpl<Student1> implements Student1Finder  {
@SuppressWarnings("unchecked")
public List<Student1> searchByName(String name,int start,int end){
     Session session= null;
     String sql= "";
     try{
            //open session
            session= openSession();
            //set SQL by ID
            sql=CustomSQLUtil.get("searchByNameStudent1");
            SQLQuery query= session.createSQLQuery(sql);
            query.addEntity("Student1", Student1.class);
            query.setCacheable(false);
            QueryPos qPos= QueryPos.getInstance(query);
            qPos.add(name);
            System.out.println(query);
            return (List<Student1>) QueryUtil.list(query, getDialect(), start, end);
     }
     catch(Exception ex){
            ex.printStackTrace();
           return null;
     }
     finally{
            closeSession(session);
     }
4

1 に答える 1

0

SQLクエリに対して宣言した名前が正しいかどうかわかりません。私は常に開発者ガイドの仕様を使用してきました.SQLがまったくないため、名前の規則が原因である可能性があります.開発中の Liferay アプリケーション

<custom-sql>
    <sql id="com.myproject.portlet.service.persistence.Student1FinderImpl.searchByName"">
    <![CDATA[
                 SELECT * FROM database_student1 WHERE name= ?
          ]]>
    </sql>
</custom-sql>

また、のディレクトリdefault.xmldocroot/WEB-INF/src/custom-sql/

参照: Liferay:カスタム SQL クエリの開発

于 2016-06-21T10:05:13.277 に答える