zoukankan      html  css  js  c++  java
  • 属性类的映射

    hibernate基本映射

    类---->数据库表

    普通属性---->表字段

    通过<class>映射到数据库表,通过<property>将普通属性映射到表字段,所谓的普通属性不包括自定义类,集合和数组等。

    一,实体类定义原则:

    1,实体类需要定义一个无参构造方法

    2,提供一个标识属性

    3,使用非final类

    4,为字段提供set和get访问器

    二,hibernate-mapping相关配置标签

    1,<hibernate-mapping 

    default-access="field|property|ClassName"

    package="package.name"/>

    default-access属性:表示hibernate用来访问所有属性的策略,默认为property

    package:指定一个包前缀,在该包下保存的是类的映射文件

    2,<class  name="类的名称"  

     table="指定表的名称"

     dynamic-update="是否动态更新" 

    dynamic-insert="是否动态插入"

    abstract/>

    默认情况下table的名称与类的名称相同;dynamic-update表示是否动态更新,在默认的false情况下会更新一条记录的所有字段,如果设置为true,那么就只更新需要更新的字段;dynamic-insert与dynamic-update的原理相同,默认为false;abstract表示将该类设置为抽象类。

    3,<id

     name="标识属性的名称" 

    type="hibernate中自定义的数据类型"

    column="在数据库表中重命名该列"

    ></id>

    4,主键生成策略

    <generator class="主键生成策略"/>

    native:采用本地数据库的主键生成策略,数字型主键

    uuid:hibernate生成32位16进制字符串,字符型主键

    identity:sqlserver,mysql的主键生成策略

    sequence:oracle数据库生成策略

    foreign:该表的主键来源其他表

    assigned:手动指定主键

    5,property

    <property name="属性字段名称"

    cloumn="重定义字段"

    type="重定义字段类型"

    update

    insert

    unique="true

    not-null

    />

    如果在name中的名称与sql的关键字相同,那么可以使用cloumn将该字段重命名,或者使用type重定义字段的数据类型,重定义的数据类型是hibernate中定义的数据类型。update表示该字段是否参与update更新,insert表示字段是否参与插入操作;formula表示该字段能从其他字段通过计算得到值。unique表示该字段是否唯一;not-null表示该字段是否为空;

    6,

  • 相关阅读:
    Hibernate检索策略与检索方式
    获取分组后的TOP 1和TOP N记录
    Oracle 高级排序函数 和 高级分组函数
    Java中的字符串常量池
    代码的完整性:打印1到最大的n位数
    代码的完整性:数值的整数次方
    递归和循环:矩形覆盖
    位运算:二进制中1的个数
    递归和循环:变态跳台阶
    递归和循环:跳台阶
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1957685.html
Copyright © 2011-2022 走看看