hibernate字段名和属性

字段名和属性名相同

Annotation:默认为@Basic

注意:如果在成员属性没有加入任何注解,则默认在前面加入了@Basic

Xml中不用写column

字段名和属性名不同

Annotation:使用@Column(name=”columnName”)进行注解

     例如:

     * @Entity 表示下面的这个Teacher是一个实体类 
     * @Table 表示映射到数据表中的表名,其中的name参数表示"表名称" 
     * @Column 表示实体类成员属性映射数据表中的字段名,其中name参数指定一个新的字段名 
     * @Id 表示主键Id 
     */  
    @Entity  
    @Table(name="_teacher")  
    public class Teacher {  
      
        private int id;   
        private String name;      
        private String title;  
      
        //设置主键使用@Id  
        @Id  
        public int getId() {  
            return id;  
        }  
      
        @Column(name="_name")//字段名与属性不同时  
        public String getName() {  
            return name;  
        }  
    ……  
     Xml:
  1. <property name="name" column="_name"/>

不需要(持久化)psersistence的字段

就是不实体类的某个成员属性不需要存入数据库中

Annotation:使用@Transient 进行注解就可以了。

     例如:

     @Transient  
        public String getTitle() {  
            return title;  
    }  
Xml:不写(就是不需要对这个成员属性进行映射)
映射日期与时间类型,指定时间精度

Annotation:使用@Temporal(value=TemporalType)来注解表示日期和时间的注解

            其中TemporalType有三个值:TemporalType.TIMESTAMP 表示yyyy-MM-dd HH:mm:ss

                                     TemporalType.DATE      表示yyyy-MM-dd

                                     TemporalType.TIME      表示HH:mm:ss

     @Temporal(value=TemporalType.DATE)  
        public Date getBirthDate() {  
            return birthDate;  
    } 

注意:当使用注解时,属性为value时,则这个属性名可以省略,例如:@Temporal(TemporalType)

Xml:使用type属性指定hibernate类型

     <property name="birthDate" type="date"/> 

    注意:hibernate日期时间类型有:date, time, timestamp,当然您也可以使用Java包装类

映射枚举类型

Annotation:使用@Enumerated(value=EnumType)来注解表示此成员属性为枚举映射到数据库

        其中EnumType有二个值:①EnumType.STRING  表示直接将枚举名称存入数据库

                                        ②EnumType.ORDINAL 表示将枚举所对应的数值存入数据库

Xml:映射非常的麻烦,先要定义自定义类型,然后再使用这个定义的类型……

http://blog.sina.com.cn/s/blog_4979ec3e01016y0o.html

原文地址:https://www.cnblogs.com/LessNull/p/4226417.html