0

Ich versuche, benutzerdefinierte SQL Service Buider verwenden, aber ich kann keine benutzerdefinierte Abfrage von Datei default.xml erhalten. Ich habe versucht, zu debuggen, aber es gibt null an sql von Student1FinderImpl zurück. Kann mir jemand helfen? Hier ist mein Code: default.xmlKann nicht benutzerdefinierte SQL durch ID in LIFERAY

<?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); 
    } 

Antwort

0

Ich weiß nicht, ob der Name, den Sie für SQL-Abfrage deklariert ist richtig, ich habe immer die Entwicklerführungs Spezifikation in meiner Arbeit verwendet, da Sie die fehlen sQL bei der alle der Namenskonvention kann die Ursache sein, sollten Sie ihren Weg seit der Entwicklung von Liferay Anwendungen versuchen

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

auch stellen Sie sicher, dass das Verzeichnis von default.xml ist docroot/WEB-INF/src/custom-sql/

siehe: Liferay:DEVELOPING CUSTOM SQL QUERIES