嘿,我已经和学生一起创建了自己的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。
我需要帮助另一个方法。
在此先感谢。
答案 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"
通过在finder上指定<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