【发布时间】:2011-03-05 04:25:41
【问题描述】:
我有一些关于与 Hibernate 交互的问题:
- 我是使用 openSession 还是 getCurrentSession(不使用 jta,而是使用线程)?
-
如何将会话操作与 Swing GUI 混合使用?在 JavaBean 类中有类似以下代码的东西好吗?
public void actionPerformed(ActionEvent event) { // session code } -
我是否可以向包含 HQL 查询的实体添加方法,或者这是一种不好的做法?例如:
// This method is in an entity MyOtherEntity.java class public int getDuration(){ Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); int sum = (Integer) session.createQuery("select sum(e.duration) as duration from MyEntity as e where e.myOtherEntity.id=:id group by e.name"). .setLong("id", getId()); .uniqueResult(); return sum; }
我怎样才能以更好、更优雅的方式做到这一点?
更新 一个广泛使用的做法是制作一个 service/dao 类来实现我们实体类的 CRUD 操作。但为什么这样好? 为什么我必须为每个实体编写一个类来管理它?真正的优势在哪里?
更新 2 服务类是DAO模式吗?这是什么意思? Arthur Ronald F D Garcia's repository example是一个DAO模式,这就是所谓的“服务层”吗?
【问题讨论】:
-
因为我的问题是如何以良好的方式混合休眠和摇摆。
-
哈哈哈...哈哈。这是一个很好的问题:D @blow
标签: java hibernate swing service-layer