<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    每日一得

    不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
    最近關心的內容:SSH,seam,flex,敏捷,TDD
    本站的官方站點是:顛覆軟件

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
    keyword:MySql字段,Hibernate session

    一.MySql字段敏感

    這幾天怪問題真是不少,這不剛建的一個數據庫的表用MiddleGen批量生成hbm.xml文件居然和數據庫的數據類型不一致.
    MySql建表語句如下:
    drop table if exists book;

    /*==============================================================*/
    /* Table: book                                                  */
    /*==============================================================*/
    create table book
    (
       id                             
    int                            not null,
       name                           
    varchar(100),
       author                         
    varchar(100),
       date                           date,
       price                          
    int,
       
    primary key (id)
    )
    comment
    ="Book table"
    type 
    = InnoDB;

    生成的hbm.xml文件如下:

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" 
    >
        
    <hibernate-mapping>
    <!-- 
        Created by the Middlegen Hibernate plugin 2.1

        http://boss.bekk.no/boss/middlegen/
        http://www.hibernate.org/
    -->

    <class 
        
    name="net.foxlog.prj.Book" 
        table
    ="book"
    >
        
    <meta attribute="class-description" inherit="false">
           @hibernate.class
            table="book"
        
    </meta>

        
    <id
            
    name="id"
            type
    ="java.lang.Long"
            column
    ="id"
        
    >
            
    <meta attribute="field-description">
               @hibernate.id
                generator-class="assigned"
                type="java.lang.Long"
                column="id"


            
    </meta>
            
    <generator class="assigned" />
        
    </id>

        
    <property
            
    name="name"
            type
    ="java.lang.String"
            column
    ="name"
            length
    ="100"
        
    >
            
    <meta attribute="field-description">
               @hibernate.property
                column="name"
                length="100"
            
    </meta>    
        
    </property>
        
    <property
            
    name="author"
            type
    ="java.lang.String"
            column
    ="author"
            length
    ="100"
        
    >
            
    <meta attribute="field-description">
               @hibernate.property
                column="author"
                length="100"
            
    </meta>    
        
    </property>
        
    <property
            
    name="date"
            type
    ="java.sql.Date"
            column
    ="date"
            length
    ="10"
        
    >
            
    <meta attribute="field-description">
               @hibernate.property
                column="date"
                length="10"
            
    </meta>    
        
    </property>
        
    <property
            
    name="price"
            type
    ="java.lang.String"
            column
    ="price"
            length
    ="10"
        
    >
            
    <meta attribute="field-description">
               @hibernate.property
                column="price"
                length="10"
            
    </meta>    
        
    </property>

        
    <!-- Associations -->
      

    </class>
    </hibernate-mapping>

    注意到沒有,id的類型變成了Long型了,而price居然變成了String了,暈啊.

    各位碰到過這個問題么?

    最后還是找到問題所在了,實際上是建表有問題,問題就出在字段的名稱上,把id改為ID,price改為PRICE就沒問題了!  MySql對id和price敏感? 不得而知,目前看來好像是這樣.只是提醒我以后建表養成一個習慣,都用大寫的就沒問題了.
    沒想到一次測試中隨便建的一個表發現了這么個有趣的事情  :)

    二.Hibernate的session關閉問題
    用hibernate的工具類獲得session有沒有碰到過session is closed的錯誤提示? 我又幸運的碰到這個問題了,呵呵,我怎么有那么多問題啊,暈了,我看來是問題先生了,我的一個同事上次也跟我說過這個事情,后來他沒有正面解決這個,繞過去了,他用Spring去替自己解決了,呵呵,也夠狠的.不過問題實際上是獲得session的時候需要增加一個判斷. 即 session.isOpen() == false;
     
    DBUtil.java代碼如下:
    /**
         * 返回一個可用的數據庫Session連接
         * 
    @return Hibernate中對數據庫的Session連接
         * 
    @throws HibernateException
         
    */
        
    public static Session currentSession() throws HibernateException
        {
            Session s 
    = (Session) session.get();
            
    // Open a new Session, if this Thread has none yet
            if (null==|| s.isOpen()==false)//注意這里
            {
                s 
    = sessionFactory.openSession();
                session.set(s);
            }
            
    return s;
        }


    posted on 2006-02-24 00:25 Alex 閱讀(1376) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 久久亚洲精品视频| 成人看的午夜免费毛片| 免费又黄又爽的视频| 狠狠色香婷婷久久亚洲精品| 一区二区三区福利视频免费观看| 亚洲熟妇无码乱子AV电影| 一级特级女人18毛片免费视频| 噜噜嘿在线视频免费观看| 亚洲性无码一区二区三区| 韩国欧洲一级毛片免费| 亚洲AV无码AV男人的天堂不卡| 午夜一区二区免费视频| 亚洲αⅴ无码乱码在线观看性色| 日韩免费视频播放| 欧洲乱码伦视频免费国产| 久久久久久久亚洲精品| 黄色网页在线免费观看| 亚洲AV永久精品爱情岛论坛| 99re6免费视频| 亚洲天堂2016| 又粗又大又猛又爽免费视频| 一区二区三区视频免费观看| 亚洲欧洲日产国码av系列天堂| 99视频免费观看| 亚洲熟妇av午夜无码不卡| 免费人成在线观看视频播放| 国产精品无码永久免费888| 亚洲爆乳无码一区二区三区| 免费v片在线观看视频网站| 亚洲国产成人手机在线观看| 亚洲日韩中文在线精品第一| 人妻无码久久一区二区三区免费 | aa在线免费观看| 亚洲bt加勒比一区二区| 毛片免费vip会员在线看| 一区二区三区免费视频网站| 亚洲人成网www| 免费看小12萝裸体视频国产 | 最近中文字幕免费mv在线视频| 99久久国产亚洲综合精品| 亚洲中文字幕无码爆乳av中文 |