2013-04-27 97 views
0

我正在个人web项目中工作,我想使用Spring Data和JPA。我在springsource.com网站找到了this nice blog entry,我花了几个小时试图了解这项工作以及他们为什么这样做。我主要需要两个问题的帮助:Spring数据存储库方法实现

  1. 为什么需要使用Service和ServiceImpl类。这看起来像是一个典型的JPA 2实现,但是在Autowired存储库中使用了Spring Data。这真让我困惑。为什么不直接使用存储库?
  2. 作者在CustomerRepository中定义了一对新的方法,但没有任何实现。他继续实施CustomerService,认为它与存储库无关。我在很多网站都看到过这个,但我不明白它是如何工作的。

正如我所说,我一直在寻找一篇好文章来找到我的问题的答案,但他们大多数似乎是跟随这些。我也检查了文章项目的github代码,但它不完整。我希望你能帮助我。

回答

3

博客文章的要点是讨论spring-data存储库。所以它没有详细说明为什么服务是必要的。

这是因为一个典型的业务方法将在单个事务中处理几个DAO /存储库。例如,转账可能包括调用AccountRepository,AudiRepository和CustomerRepository。该服务的主要目标是向表示层提供事务性业务方法。

+0

哦!我懂了。那么Repository方法实现呢?为什么没有实现该方法findByLastname(String lastname,Pageable Pageable);作者直接使用它,而不用先定义身体。 – 2013-04-27 22:21:35

+0

这就是博文的全部内容,以及春季数据的美妙之处。 Spring动态地创建一个为你实现接口的bean。您可以按照一组约定来定义方法。您需要注释方法来指定JPQL,而Spring会为您做其余的工作。 – 2013-04-27 22:29:18

+0

但是Spring是否定义了方法体呢?真的有趣和impresive ...非常感谢您的帮助;) – 2013-04-27 22:54:24

相关问题