java - Hibernate 和 Spring - 道,服务

标签 java spring hibernate service dao

我一直在阅读一些教程,我可以看到大多数 MVC 实现

基于:

1) 一个dao接口(interface),例如“IUserDao”

2) 该接口(interface)的 dao impl - “mySimpleUserDaoImpl”

3) 持久化服务接口(interface):“IUserService”

4) 和一个 impl - "UserServiceImpl"

这是最佳做法吗?我的意思是我问这个问题的原因是因为有 30 个服务与 getXById()、deleteX(x)、createX(x) 方法或多或少相同,这似乎是多余的。

请考虑到我使用的是 spring 3 和 hibernate 4,我决定在开始用代码敲击键盘之前先问这个问题

谢谢。

最佳答案

如果您刚刚开始开发,请查看 Spring JPA .服务应该是一对多存储库 (DAO)。但我也不会再手动创建所有样板代码。 Spring JPA 消除了基本的 CRUD 和搜索功能以及分页。

Here is a video它遍历了 Spring、JPA、Hibernate 的所有配置,并以 Spring Data JPA 结束,向您展示了所有被消除的样板代码。

要使用 Spring Data JPA,你的存储库接口(interface)最终是:

package com.mysampleapp.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.wcfgroup.model.Employee;

@Repository("employeeRepository")
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
    Employee findBySsn(String ssn);
}

然后XML配置使用Spring Data JPA:

<jpa:repositories base-package="com.mysampleapp.repository"/>

现在为您处理所有样板代码。您不再需要创建具有查找方法和基本 CRUD 功能的基本存储库类。 JpaRepository 接口(interface)提供了许多不错的功能,您无需为实现做任何事情。

关于java - Hibernate 和 Spring - 道,服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16547862/

相关文章:

java - 在 javafx 应用程序中单击对话框按钮时内存增加

mysql - 运行spring boot应用程序时出错

java - HTTP 403 禁止 - Auth JASS Spring Camel

java - 使用 hibernate 以两个列表作为参数从数据库获取对象

java初学者想学Hibernate

Java事务服务

java - 以编程方式在 log4j 中记录特定包

java - iText:带有图像的单元格不适用 Rowspan

java - 无法解析异常错误中的参数 [0]

java - 调用 Hibernate session 刷新