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

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

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

    blogjava's web log

    blogjava's web log
    ...

    hibernate uuid.hex主鍵生成+spring帶來的困惑

    第二次插入就報錯?


    表結構

    CREATE?TABLE?`cloumn`?(
    ??`c_id`?
    varchar(16)??NOT?NULL,
    ??`u_id`?
    varchar(16)??default?NULL,
    ??`c_name`?
    varchar(100)?default?NULL,
    ??`c_sort`?
    int(11)?default?NULL,
    ??`c_beizhu`?
    varchar(100)?,
    ??
    PRIMARY?KEY??(`c_id`)
    ?
    )

    2.配置文件
    <?xml?version="1.0"?encoding='UTF-8'?>
    <!DOCTYPE?hibernate-mapping?PUBLIC
    ????????????????????????????"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"
    ????????????????????????????"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"?
    >

    <hibernate-mapping>
    <class
    ????
    name="hibernate3test.dal.Cloumn"
    ????table
    ="cloumn"
    >
    ????
    <id?name="cid"?type="java.lang.String"?column="c_id"?>
    //uuid.hex生成方式
    ????????
    <generator?class="uuid.hex"?/>
    ????
    </id>
    ????
    <property?name="u_id"?type="java.lang.String"?column="u_id"?/>
    ????
    <property?name="cname"?type="java.lang.String"?column="c_name"?/>
    ?????
    <property?name="csort"?type="java.lang.Integer"?column="c_sort"?/>
    ??????
    <property?name="cbeizhu"?type="java.lang.String"?column="c_beizhu"?/>

    </class>
    </hibernate-mapping>

    spring配置文件
    ????<bean?id="test"?class="hibernate3test.dal.dal">
    ??????
    ????????????
    <property?name="sessionFactory"><ref?local="sessionFactory"/></property>???
    ????
    </bean>


    vo
    public?class?Cloumn?implements?Serializable?{

    ????
    private?String?cid;
    ????
    private?String?u_id;
    ????
    private?String?cname;
    ????
    private?Integer?csort;
    ????
    private?String?cbeizhu;
    ????
    public?Cloumn()?{
    ????}

    //geter?setter


    dao 代碼
    package?hibernate3test.dal;
    import?org.springframework.orm.hibernate3.support.HibernateDaoSupport;

    public?class?dal?extends?HibernateDaoSupport?{
    ????
    public?dal()?{
    ????}

    ????
    public?void?addCloumn()
    ????
    {
    ????????Cloumn?cc?
    =?new?Cloumn();
    ????????cc.setU_id(
    "297ebd930b46197a");
    ????????cc.setCname(
    "測試添加攔目1");
    ????????cc.setCbeizhu(
    "備注");
    ????????cc.setCsort(
    1);
    ????????
    this.getHibernateTemplate().save(cc);
    ????}


    測試
    ????public?static?void?main(String?args[])
    ????
    {
    ???
    //加載spring配置文件
    ???????????????Resource?rs=new?ClassPathResource("appcontext.xml");
    ????????BeanFactory?factory
    =new?XmlBeanFactory(rs);
    //得到dal
    ????????dal?dao=(dal)factory.getBean("test");
    //添加
    ???????dao.addCloumn();
    ???????
    //第二次再次添加就報錯..??
    ???????
    //dao.addCloumn();
    ????}



    怎么會這樣,第一次可以添加進數(shù)據(jù)庫,第二次再調(diào)用dao.addCloumn()就報錯?

    這樣做應該是沒有問題的啊??

    posted on 2006-05-31 01:04 record java and net 閱讀(8848) 評論(14)  編輯  收藏 所屬分類: javaSpring

    評論

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2006-05-31 08:16 sun

    主鍵不允許有重復值  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2006-05-31 08:19 吳某人-不斷地學習

    是啊。

    但是uuid.hex不是由hibernate自動生成的嗎?

    怎么會報重復呢?



      回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2006-05-31 09:58 莫多

    我都用UUID,可是沒有你說的這個問題。
    不會有問題的,還有就是你用Hiberate3那么就用uuid
    你看源代碼就知道uuid.hex其實和uuid是一樣的了。只有在hibernate2里面才有區(qū)別。  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2006-05-31 10:28 吳某人-不斷地學習

    @莫多

    我單獨用hibernate測試沒有問題,加上spring 問題就來了。。

    以下是hibernate測試代碼(通過)
    //得到session
    public Session getSession()
    {
    try
    {
    Configuration cfg = new Configuration().configure();
    SessionFactory sf=cfg.buildSessionFactory();
    return sf.openSession();
    }
    catch(Exception ee)
    {
    log.error("error:"+ee.getMessage());
    }
    return null;
    }

    //添加的方法
    public void addCloumn()
    {
    Cloumn cc = new Cloumn();
    cc.setU_id("297ebd930b46197a");
    cc.setCname("測試添家攔目1");
    cc.setCbeizhu("備注");
    cc.setCsort(1);
    Session ss=this.getSession();
    ss.save(cc);
    ss.flush();
    ss.close();
    }

    public static void main(String[] args) {
    dao test = new dao();
    //添加
    test.addCloumn();
    再次添加
    test.addCloumn();

    }

    這樣沒有問題。。

    加了spring就有問題。

    路過的高手指點。。。
      回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2006-06-06 16:49 冰樹

    煩死了
    我也一樣的有這個問題  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2006-06-06 17:27 吳某人-不斷地學習

    你問題解決了嗎?

      回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2006-07-17 20:42 路過

    我也碰到類似的問題。。。。現(xiàn)在解決了
    1。確認id字段在數(shù)據(jù)庫是vchar(32)
    2.表按id字段做索引  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2006-07-18 08:27 吳某人-不斷地學習

    @路過
    謝謝阿。

    有空我研究1下。

    最近搞.net 了  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2007-04-27 11:26 aaa

    unsaved-value=""  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2008-04-23 16:23 freeit

    數(shù)據(jù)庫字段不夠長  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2008-04-28 10:25 F

    UUID.HEX對應的數(shù)據(jù)庫字段長度32  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2008-05-22 16:43 Andy Wu

    Cloumn cc = new Cloumn();
    cc.setU_id("297ebd930b46197a");
    cc.setCname("測試添加攔目1");
    cc.setCbeizhu("備注");
    cc.setCsort(1);

    UUID會自動生成,不需要你設置
    cc.setU_id("297ebd930b46197a");
    這句不要  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2008-05-22 16:45 Andy Wu

    @Andy Wu
    看錯了  回復  更多評論   

    # re: hibernate uuid.hex主鍵生成+spring帶來的困惑 2008-07-08 15:55 scorpioqh

    我感覺應該是Spring的HibernateTemplate方法的問題,也就是這句調(diào)用:
    this.getHibernateTemplate().save(cc);
    你看看Spring源代碼,這個save方法在Spring內(nèi)部是怎么實現(xiàn)的。是調(diào)用Hibernate的save方法嗎?如果調(diào)用的是saveOrUpdate方法,那就會出錯。。他會插入相同的主鍵,會認為你這個新插入的對象是游離對象。  回復  更多評論   

    導航

    常用鏈接

    留言簿(44)

    新聞檔案

    2.動態(tài)語言

    3.工具箱

    9.文檔教程

    友情鏈接

    搜索

    最新評論

    主站蜘蛛池模板: 免费国产成人高清视频网站| 国产乱辈通伦影片在线播放亚洲| 亚洲av纯肉无码精品动漫| 亚洲人成无码网WWW| 99久久免费观看| 国产AV日韩A∨亚洲AV电影| 亚洲av之男人的天堂网站| 在线观看免费成人| 国产中文字幕在线免费观看| 亚洲一区二区三区精品视频| 亚洲国产精品视频| 四虎1515hh永久久免费| 边摸边吃奶边做爽免费视频网站 | 精品熟女少妇AV免费观看| 成在线人直播免费视频| 亚洲一级毛片在线播放| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 人人狠狠综合久久亚洲高清| 中文字幕免费视频| 一道本不卡免费视频| 国产成+人+综合+亚洲专| 国产啪亚洲国产精品无码| 性xxxx视频播放免费| 好久久免费视频高清| 看免费毛片天天看| 亚洲国产日韩在线| 亚洲精品tv久久久久久久久| 精品剧情v国产在免费线观看| 97久久免费视频| 中文无码日韩欧免费视频| 无码亚洲成a人在线观看| 亚洲视频在线一区二区三区| 亚洲熟伦熟女新五十路熟妇 | 国产成人毛片亚洲精品| 在线观看免费大黄网站| 亚洲三级高清免费| 无码日韩精品一区二区免费暖暖| 一个人免费观看视频在线中文 | 亚洲精品美女久久久久99| 国产在线播放免费| 插B内射18免费视频|