1. 程式人生 > >Hibernate自動生成的DAO的修改方法

Hibernate自動生成的DAO的修改方法

使用MyEclipse中用hibernate反向工程生成的DAO會發生物件無法儲存到資料庫的現象,原因是沒有運用事務。DAO裡註釋提示如下:

/**
 * A data access object (DAO) providing persistence and search support for User
 * entities. Transaction control of the save(), update() and delete() operations
 * can directly support Spring container-managed transactions or they can be
 * augmented to handle user-managed Spring transactions. Each of these methods
 * provides additional information for how to configure it for the desired type
 * of transaction control.
 * 
 * @see org.hibernate.entity.User
 * @author MyEclipse Persistence Tools
 */


解決方法一、使用Spring的事務管理

方法二、修改DAO,新增事務處理

當然可以在呼叫dao物件的程式碼前後加事務控制,但這樣破壞了dao對資料庫操作的封裝,讓業務層中摻雜了持久層程式碼。所以進行以下修改:

import org.hibernate.Session;
import org.hibernate.Transaction;
public void save(Resource transientInstance) {
        log.debug("saving Resource instance");
        try {
        Session session = getSession();
         Transaction tr = session.beginTransaction(); //開始事務
          session.save(transientInstance);
        tr.commit();   //提交事務
         session.flush();    //清空快取
            log.debug("save successful");
        } catch (RuntimeException re) {
            log.error("save failed", re);
            throw re;
        }
    }
public void delete(Resource persistentInstance) {
        log.debug("deleting Resource instance");
        try {
        Session session = getSession();
    Transaction tr = session.beginTransaction();        
            session.delete(persistentInstance);
            tr.commit();
            session.flush();
            log.debug("delete successful");
        } catch (RuntimeException re) {
            log.error("delete failed", re);
            throw re;
        }
    }


相關推薦

hibernate自動生成dao

                                                                               hibernate 用 MyEclipse, 就有必要把 MyEclipse 快速開發的功能熟悉一下. 當我們熟悉了

Hibernate自動生成DAO修改方法

使用MyEclipse中用hibernate反向工程生成的DAO會發生物件無法儲存到資料庫的現象,原因是沒有運用事務。DAO裡註釋提示如下: /** * A data access object (DAO) providing persistence and searc

使用Mybatis-Generator自動生成Dao、Model、Mapping相關文件

select let 屬於 url img jdb uid enables 粘貼 Mybatis屬於半自動ORM,在使用這個框架中,工作量最大的就是書寫Mapping的映射文件,由於手動書寫很容易出錯,我們可以利用Mybatis-Generator來幫我們自動生成文件。

使用MyBatis-Gererator自動生成Dao.Model.Mapping相關文件

less .cn dbcc nat acc git reat logs ping 一。在MyEclipse中使用Maven項目下使用MyBatis-Gererator自動生成Dao.Model.Mapping相關文件   1.關於Mybatis-Generator的下載可以

使用Mybatis-Generator自動生成Dao、Model、Mapping相關文件(轉)

rop root github mini -c back fig override creat https://github.com/astarring/mybatis-generator-gui 帶界面版:需要jdk 1.8以上 出處:http:

一個簡單的執行程序的GNU automake自動生成Makefile的方法及案例

rect -o 創建 otool 其中 ner markdown ted head 一個簡單的執行程序的GNU automake自動生成Makefile的方法及案例 在GNU的世界裏,存在Automake這樣的工具進行自動生成Makefile文件,automake是由Per

【原創】Hibernate自動生成(2)

成了 OS class 項目重構 alt index AS url 改名 本實戰是博主初次學習Java,分析WCP源碼時,學習HibernateTools部分的實戰,由於初次接觸,難免錯誤,僅供參考,希望批評指正。 開發環境: Eclipse Version: Photo

MyBatis逆向工程,自動生成dao、實體類、mapper檔案

利用mybatis generator 自動生成生成dao、實體類、mapper檔案 這裡介紹兩種方法: 1、獨立的資料夾的方式,脫離開發工具 2、基於開發工具的方式(Eclipse) 1、獨立的資料夾的方式,脫離開發工具

c++ 利用巨集自動生成get set 方法

1.非指標型別的成員變數的生成 // PropertyBuilderByName 用於生成類的成員變數 // 並生成set和get方法 // type 為變數型別 // access_permission 為變數的訪問許可權(public, priavte, protected)

使用 mybatis-Generator 自動生成DAO、Model、Mapping相關檔案

1、Maven專案 2、配置generatorConfig.xml檔案 3、在pom.xml中配置外掛     2、generatorConfig.xml檔案資訊 <?xml version="1.0" encoding="UTF-8"?> <!DO

idea + groovy + mybatis 自動生成 Dao、mappings 和 實體類

背景 在 windows 系統中,idea 在 C:\Users\使用者名稱\.IntelliJIdea2018.2\config\extensions\com.intellij.database\schema 目錄下預設存在如下 Groovy 檔案:Generate POJOs.g

idea 利用maven自動生成dao、dto、mapper檔案

1.在pom檔案中新增maven依賴 <build> <finalName>lottery-common</finalName> <plugins> <plugi

mybatis自動生成dao, model, mapper xml檔案

用mybatis的時候,手寫xml或model檔案是一個力氣活,所以可以用mybatis-gennerator外掛自動生成mybatis所需要的dao、bean、mapper xml檔案 (原文地址:http://blog.csdn.net/tolcf/article/details/50835

windows程式崩潰時自動生成dump檔案方法

  /****************第一步新增createdump.h********************************* 新增一個頭檔案:createdump.h #pragma once #include <windows.h> #inclu

Kubernetes新建RC成功時但Pods沒有自動生成的解決方法

建立好yaml檔案以後,為了將它釋出到kubernetes叢集中,在Master節點執行以下命令時,顯示我們想要建立的RC已經建立成功 #kubectl create -f filename.yam replicationcontroller "rcname" created 但

intellij配置hibernate自動生成hbm.xml檔案

在使用intellij開發Java web專案的時候,會遇到hibernate中hbm.xml檔案不知道在哪裡建立和生成的問題,其實intellij自動生成的配置檔案雖然配置有點麻煩,但是生成確實很牛逼,你甚至不需要去建立實體類,只需要關聯資料庫,實體類和對應的實體類.h

擴充套件Hibernate註解,讓Hibernate自動生成指定資料

       我在專案中碰到這種問題,User類中有個username屬性,還有一個initialOfEachWord屬性,意思就是使用者名稱和使用者名稱的每個拼音首字母。我從前端拿到的是username,沒有initialOfEachWord,但是在插庫的時候要一起儲存進去

Mybatis Generator(MBG)自動生成dao,entity ,mapper.xml對映

1.在pom.xml中引入依賴 <!--mybatis-generator 自動生成工具--> <dependency> <groupId>org.mybatis.generator

OC 自動生成分類屬性方法

標籤(空格分隔): Objective-C runtime iOS 分類 category   分類屬性方法自動生成編碼全過程。 背景   分類,在 iOS 開發中,是常常需要用到的。在分類裡新增屬性也是常有的事,但分類中無法新增例項變數,編譯器也無法

Java自動生成變數承接方法返回值

qr.getGraphics(); 例如上面的方法,首先將游標放在";"之後,然後按住Ctrl+1鍵 其中第一個是 Graphics graphics = qr.getGraphics(); 第二是,但是該變數會是成員變數,在開始的時候就已經聲明瞭 graphics =