@Finder List<User> findByCreator(User creator); }@Finder注释标记了Polyforms的方法。接下来,不要实现UserRepostiory,而是通过另外的注释在User实体中提供一个匹配Hibernate的查询。@NamedQueries({ @NamedQuery(name = "User.findByCreator", query = "select u from User u where u.creator = :creator"), }) public class User { ... }根据文档,用于查找查询语句的命名规则是基于方法名和实体名:命名查询的映射规则是[name of Named Query] = [name of Entity].[name of method]。你可以通过@Finder指定命名查询的名字,如@Finder("findUserByName"),然后命名查询的名字会是“User.findUserByName”。除了@Finder注释,还有@Updater和@Counter分别提供了对大规模更新和查询计数的支持。EntityRepository父接口已经支持保存单实体、删除和通过标识符获取的功能。所有这些连接都是通过Spring framework完成的,并依赖Spring的切面来提供API的动态实现。Polyforms支持的其他功能包括:跟踪信息(创建者、创建日期、修改者、修改日期)的自动管理透明的分页支持通过注释定义事务边界域事件模型,分离持久化事件和应用功能。