`
zhaoshijie
  • 浏览: 2246684 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate添加数据,默认字段为null的解决办法

阅读更多
hibernate添加数据,默认字段为null的解决办法
数据库中的一个字段默认为0,但是在用hibernate的添加之后,默认字段竟然不是0,为NULL.
查了一下.发现想要让默认字段生效.需要在*.hbm.xml添加一些参数,如下.(红色部分)
<hibernate-mapping>
    <class name="com.scm.domain.SysBumen" table="sys_bumen" catalog="scm" dynamic-insert="true" dynamic-update="true">
..............
    </class>
</hibernate-mapping>




下面是网上搜集的有关其它配置的说明

Hibernate允许我们在映射文件里控制insert和update语句的内容.比如在映射文件中<property 元素中的update属性设置成为false,那么这个字段,将不被包括在基本的update语句中,修改的时候,将不包括这个字段了.insert同理.dynamic动态SQL语句的配置也是很常用的.下面介绍配置SQL语句的具体属性:
      1)<property>元素 insert属性:设置为false,在insert语句中不包含这个字段,表示永远不会被插入,默认true
      2)<property>元素 update属性:设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true
      3)<class>元素 mutable属性:设置为false就是把所有的<property>元素的update属性设置为了false,说明这个对象不会被更新,默认true
      4)<property>元素 dynamic-insert属性:设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中.默认false
      5)<property>元素 dynamic-update属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false
      6)<class>元素 dynamic-insert属性:设置为true,表示把所有的<property>元素的dynamic-insert属性设置为true,默认false
      7)<class>元素 dynamic-update属性:设置为true,表示把所有的<property>元素的dynamic-update属性设置为true,默认false

      Hibernate生成动态SQL语句的消耗的系统资源(比如CPU,内存等)是很小的,所以不会影响到系统的性能,如果表中包含N多字段,建议把dynamic-update属性和insert属性设置为true,这样在插入和修改数据的时候,语句中只包括要插入或者修改的字段.可以节省SQL语句的执行时间,提高程序的运行效率.
分享到:
评论

相关推荐

    hibernate操作数据库笔记

    //该方法将到classpath下解析hibernate.cfg.xml中的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法中指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:...

    Hibernate注释大全收藏

    辨别符列名字默认为 DTYPE,其默认值为实体名。其类型为DiscriminatorType.STRING。 连接的子类 @Entity @Inheritance(strategy=InheritanceType.JOINED) public class Boat implements Serializable { ... } @...

    ssh(structs,spring,hibernate)框架中的上传下载

     以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。  工程...

    (2.0版本)自己写的struts2+hibernate+spring实例

    而spring默认的数据持久话只能包含业务层和数据层.不能包含界面层.所以用find方法会导致session失效.故用get方法.现在这个问题已经解决.其实就是把原web.xml中的最后的过滤器代码移到最顶端就可以了.具体查看代码)...

    PDMan-win64_v2.1.2.exe使用说明

    我的示例模板 =========模板开始================== ... $blankline ...重命名数据类型,生成Po Vo如果字段类型为空,需要设置所有空字段对应的数据类型 五.生成po vo 六.数据库新加的表需要重新导入

    java-ee-jpa-example-AndrasTerrayCodecool:GitHub Classroom创建的java-ee-jpa-example-AndrasTerrayCodecool

    将属性zipcode的列名更改为Zip ,将其长度限制为4,并将email字段设置为UNIQUE和NOT NULL ! 不需要保留学生的age ,因为它是根据dateOfBirth计算dateOfBirth -通过将其标记为@Transient从表dateOfBirth排除。 向...

    java-ee-jpa-example-mate-kovacs:GitHub Classroom创建的java-ee-jpa-example-mate-kovacs

    将属性zipcode的列名更改为Zip ,将其长度限制为4,并将email字段设置为UNIQUE和NOT NULL ! 不需要保留学生的age ,因为它是根据dateOfBirth计算dateOfBirth -通过将其标记为@Transient从表dateOfBirth排除。 向...

    java-ee-jpa-example-agnesgal:GitHub Classroom创建的java-ee-jpa-example-agnesgal

    将属性zipcode的列名更改为Zip ,将其长度限制为4,并将email字段设置为UNIQUE和NOT NULL ! 不需要保留学生的age ,因为它是根据dateOfBirth计算dateOfBirth -通过将其标记为@Transient从表dateOfBirth排除。 向...

    java-ee-jpa-example-DanielCs1988:GitHub Classroom创建的java-ee-jpa-example-DanielCs1988

    将属性zipcode的列名更改为Zip ,将其长度限制为4,并将email字段设置为UNIQUE和NOT NULL ! 不需要保留学生的age ,因为它是根据dateOfBirth计算dateOfBirth -通过将其标记为@Transient从表dateOfBirth排除。 向...

    java-ee-jpa-example-egressyk:GitHub Classroom创建的java-ee-jpa-example-egressyk

    将属性zipcode的列名更改为Zip ,将其长度限制为4,并将email字段设置为UNIQUE和NOT NULL ! 不需要保留学生的age ,因为它是根据dateOfBirth计算dateOfBirth -通过将其标记为@Transient从表dateOfBirth排除。 向...

    java-ee-jpa-example-martonTorok:GitHub Classroom创建的java-ee-jpa-example-martonTorok

    将属性zipcode的列名更改为Zip ,将其长度限制为4,并将email字段设置为UNIQUE和NOT NULL ! 不需要保留学生的age ,因为它是根据dateOfBirth计算dateOfBirth -通过将其标记为@Transient从表dateOfBirth排除。 向...

    jdbc基础和参考

    2.如果找不到,get()会立即发送sql语句到数据库中查找数据,如果找到就返回,如果找不到返回null; load:(使用延迟加载策略) 1.load()方法默认要加载的对象一定存在,所以很放心的使用代理对象,等到用到的时候从...

    cms后台管理

    首先,在数据库里创建了一个jc_mycontent的表,其中有id,title,content三个字段 其次,创建了一个实体类 public class MyContent { private static final long serialVersionUID = 1L; private Integer id; ...

Global site tag (gtag.js) - Google Analytics