liferay-6.1 - 实施自己的服务

时间:2012-11-30 16:23:56

标签: liferay-6

嘿,我已经和学生一起创建了自己的service.xml。现在我想为学生添加我自己的searchByName方法。你能解释一下我在StudentLocalServiceImpl写的内容。

 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。
我需要帮助另一个方法。
在此先感谢。

1 个答案:

答案 0 :(得分:4)

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

e.g。

<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"

通过在f​​inder上指定<finder name="Name" return-type="Student" unique="true"> <finder-column name="name" /> </finder> 属性,finder实际上可以声明一个唯一索引以及在此关系上生成(将应用于DB表):

ant build-service

使用此定义并在重新运行studentPersistence之后,public Student getStudentByName(String name) throws SystemException { return studentPersistence.findByName(name); } 将包含使用在xml元素中找到的finder名称的新方法,后者附加前缀:countBy,findBy,fetchBy,removeBy,等

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

{{1}}

HTH