休眠和春天的关系

Posted

技术标签:

【中文标题】休眠和春天的关系【英文标题】:Relation betweenn hibernate and spring 【发布时间】:2013-04-19 16:32:10 【问题描述】:

我有一个关于 spring + hibernate 的问题 我总是使用休眠进行开发,我生成表和 DAO 类的图像 然后在 logic metier 我对这些方法进行简单的调用 dao ....

例如 UserDao=new UserDao () 然后 userdao.persist() ...

现在我有intgret spring,但我还不明白..

1

知道自己也在打电话的情况下加什么加分 有 dao 服务(手动写的)它不会生成 类 dao 与休眠

2

是不是有了春天我就不用担心管理会话了 例如打开会话,关闭会话 commit() ...

提前谢谢你我想有一个想法Ccool:

【问题讨论】:

【参考方案1】:

Spring 的核心是一个依赖注入框架。这意味着,而不是做

public class MyService
    private MyDao dao;

    public MyService() 
        dao = new MyDao();
    

你可以的

public class MyService
    private MyDao dao;

    @Autowired
    public MyService(MyDao dao) 
        this.dao = dao;
    

而Spring会自动调用构造函数并注入一个MyDao的实例。主要好处是代码很容易进行单元测试。

最重要的是,它允许直接注入代理而不是实际的实现。这些代理确实会为您处理事务管理,以及更多(异常翻译、安全检查等)。

因此,您无需显式打开、提交和回滚事务,只需使用@Transactional 注释服务方法,Spring 就会打开、提交/回滚事务。并且事务上下文会自动传播到嵌套的服务调用。

这个简短的回答只是为了给你一个想法。要了解更多信息,请阅读依赖注入,并阅读 Spring 文档。

【讨论】:

【参考方案2】:

使用 Spring 注解,例如 @Service 用于服务类,@Repository 用于 Dao 类,@Controller 用于操作控制器。在服务类或方法上使用@Transactional 足以执行事务。

【讨论】:

以上是关于休眠和春天的关系的主要内容,如果未能解决你的问题,请参考以下文章

如何在多对多关系上使用休眠和 JPA 删除孤立实体?

休眠一对多关系

非主键之间的休眠关系OneToMany

在不调用属性的情况下获取休眠惰性关系 n+1 - Kotlin

如何使用同一列休眠设置多个一对多关系

无法使用 OneToMany 和 ManyToOne 关系在休眠中创建表(也无法创建外键)