2012-11-30 37 views
9

嘿,我已经与学生创建了自己的service.xml。现在o想为学生添加我自己的searchByName方法。你能解释我在StudentLocalServiceImpl中写什么吗?liferay-6.1 - 实现自己的服务

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

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

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

//我创建了一个方法getAll。
我需要另一个帮助。
在此先感谢。

回答

4

您会首先在您定义的实体内将其声明为service.xml中的“finder”元素。

例如

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

return-type也可能是Collection如果想要一个List<Student>作为返回类型,如果名称不唯一。

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

也可以陈述该列的比较运算符:

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

取景器实际上可以声明以及要在这种关系中产生的唯一索引(将被应用到数据库表)通过指定在取景器的unique="true"属性:

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

在这个定义下,并重新乳宁ant build-servicestudentPersistence后将包含使用在附加前缀的xml元素中找到的查找器的名称的新方法:countBy,findBy,fetchBy,removeBy等。

最后,您的serice方法只需要包含以下内容(基于以上):

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

HTH

+1

非常感谢雷它帮助我很多.. :) –

+0

你把它标记为回答? :) 谢谢 – Ray