• hbm配置文件 generator节点各种解释


    今天犯了个错误

      generator节点class属性有这么几个值(主键生成策略方案):

      assigned:由用户指定主键值

      sequence:由oracle序列生成

      increment:对类型为long,short,int的主键,以自增长的方式生成主键值,增量为1

      identity:在oracle中没用,因为他是支持标志列的数据库能够用的

      native: 由hibernate决策(大家自己测吧)

      当我们配置节点属性为assigned时,并且没有为主键赋值:

      

      当节点属性为increment时我们运行:

          

      可以看到执行了查询语句,他在查询最大的gradeid,而我的表为空表,所以查不到任何值,并没有执行更新或者插入的操作

      transction错误可以忽略,这个错误是因为之前测试的时候没有begintransaction(),在save前面加上session.beginTransaction();就能解决

      解决方案:

    • 在执行save()操作前,给id赋值
    • 更改生成策略为sequence(前提有序列)
    • 在表不为空的前提下使用increment
  • 相关阅读:
    443. String Compression
    506. Relative Ranks
    825. Friends Of Appropriate Ages
    447. Number of Boomerangs
    54. Spiral Matrix
    744. Find Smallest Letter Greater Than Target
    HDU-1565 方格取数(1)
    zoj 3672 Gao The Sequence
    ZOJ 3675 Trim the Nails
    poj -2955 Brackets
  • 原文地址:https://www.cnblogs.com/gcs1995/p/4139422.html
Copyright © 2020-2023  润新知