在使用Spring Data JPA时发现的问题

在实际应用中,我们通常会在页面上进行组合查询,例如用户这个对象
页面上会列出用户姓名、年龄、学历、性别、地址、电话等等的一系列查询条件

最近在学习Spring Data JPA,不知这个怎么实现这种组合条件的查询啊
只能手动判断后写SQL吗

自行扩展接口实现或者参考以下帖子

http://stackoverflow.com/questions/2880209/jpa-findbyexample

And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd);

IBM DW中文教程
[url]http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/index.html[/url]

[quote]
And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd);
Or --- 等价于 SQL 中的 or 关键字,比如 findByUsernameOrAddress(String user, String addr);
Between --- 等价于 SQL 中的 between 关键字,比如 findBySalaryBetween(int max, int min);
LessThan --- 等价于 SQL 中的 "<",比如 findBySalaryLessThan(int max);
GreaterThan --- 等价于 SQL 中的">",比如 findBySalaryGreaterThan(int min);
IsNull --- 等价于 SQL 中的 "is null",比如 findByUsernameIsNull();
IsNotNull --- 等价于 SQL 中的 "is not null",比如 findByUsernameIsNotNull();
NotNull --- 与 IsNotNull 等价;
Like --- 等价于 SQL 中的 "like",比如 findByUsernameLike(String user);
NotLike --- 等价于 SQL 中的 "not like",比如 findByUsernameNotLike(String user);
OrderBy --- 等价于 SQL 中的 "order by",比如 findByUsernameOrderBySalaryAsc(String user);
Not --- 等价于 SQL 中的 "! =",比如 findByUsernameNot(String user);
In --- 等价于 SQL 中的 "in",比如 findByUsernameIn(Collection userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
NotIn --- 等价于 SQL 中的 "not in",比如 findByUsernameNotIn(Collection userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
[/quote]

假如有好多字段呢,有些字段为空,有些不为空,也就是多条件动态查询呢,怎么实现呢

springdata代码下载:[url]http://www.zuidaima.com/share/search.htm?key=springdata[/url]