2012-11-30 16 views
9

Ehi Ho creato il mio service.xml con lo studente. Ora o voglio aggiungere il mio metodo searchByName per gli studenti. puoi spiegarmi cosa scrivere in StudentLocalServiceImpl.liferay-6.1 - Implementare il proprio servizio

public class StudentLocalServiceImpl extends StudentLocalServiceBaseImpl { 
/* 
* NOTE FOR DEVELOPERS: 
    * 
*/ 

public List<Student> getAll() throws SystemException { 
    return studentPersistence.findAll(); 
} 

public Student getStudentByName(String name) { 
    return studentPersistence. 
} 

// Ho creato un metodo getAll.
Ho bisogno di aiuto per l'altro.
Grazie in anticipo.

risposta

4

Per prima cosa dichiararlo come elemento "cercatore" nello service.xml all'interno dell'entità definita.

ad es.

<finder name="Name" return-type="Student"> 
    <finder-column name="name" /> 
</finder> 

Il return-type potrebbe anche essere Collection se vogliono un List<Student> come tipo di ritorno, se il nome non è univoco.

<finder name="Name" return-type="Collection"> 
    <finder-column name="name" /> 
</finder> 

Si può anche affermare un operatore di confronto per la colonna:

<finder name="NotName" return-type="Collection"> 
    <finder-column name="name" comparator="!=" /> 
</finder> 

Un cercatore può effettivamente dichiarare un indice univoco, così da generare su questa relazione (verrà applicato alla tabella DB) specificando l'attributo unique="true" sulla pagina:

<finder name="Name" return-type="Student" unique="true"> 
    <finder-column name="name" /> 
</finder> 

Con questa definizione e dopo re-runing ant build-service il studentPersistence conterrà nuovi metodi usando il nome del finder trovato nell'elemento xml aggiunto con un prefisso: countBy, findBy, fetchBy, removeBy, ecc.

Infine, il tuo metodo di serice dovrebbe solo contenere quanto segue (basato sul sopra):

public Student getStudentByName(String name) throws SystemException { 
    return studentPersistence.findByName(name); 
} 

HTH

+1

Grazie mille Ray mi ha aiutato molto .. :) –

+0

Vuoi contrassegnare come risposta? :) grazie – Ray