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

时间: 2024-10-08 21:07:26

hibernate字段名和属性的相关文章

MyBatis学习总结_04_解决字段名与实体类属性名不相同的冲突

一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES('aaaa', 23); INSERT INTO orders(order_no, order_price) VALUES('bbbb', 33); INSER

MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES('aaaa'

MyBatis——解决字段名与实体类属性名不相同的冲突

原文:http://www.cnblogs.com/xdp-gacl/p/4264425.html 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSER

Mybatis解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES('aaaa'

MyBatis学习总结4--解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定是完全相同的,如果直接在xml映射文件中使用sql进行映射,会造成返回值为空的情况,下面阐述解决方案: 测试所用表和数据 create table orders( order_id int primary key auto_increment, order_no varchar(20), order_price float ); insert into orders(order_no, order_price) values('aaa

Mybatis解决属性名与字段名不一致

在开发的时候应该遇到这样的情况,数据库中的字段名与属性名不一致的情况,通常数据库中的字段命名时多个单词之间使用下划线连接在一起的,而在类中的属性名则多数是用驼峰标识的命名方式,我见过的大多数都是这样,那么使用mybatis该如果解决这一的问题呢?如下: 数据表: CREATE TABLE tab_department( ids INT PRIMARY KEY AUTO_INCREMENT, de_name VARCHAR(50) COMMENT '部门名称', p_ids INT COMMENT

mybatis学习总结---属性名和字段名不一致问题

1. 查询时使用别名,别名和属性名保持一致 <select id="getUser" parameterType="int" resultType="com.skd.mybits.domain.User"> select id_dif id, name_dif name, age_dif age from users where id=#{id} </select> 红色表示字段名,蓝色表示别名,别名和属性名保持一致. 2

java:Hibernate框架(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态)

1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configurati

攻城狮在路上(壹) Hibernate(三)--- 属性访问、命名策略、派生属性、指定包名等

一.hibernate访问持久化类属性的策略: 在<property>元素中的access属性用于指定Hibernate访问持久化类属性的方式. 常见的方式如下: 1.property:默认值.hibernate通过相应的getXXX()和setXXX()方法. 2.field:hibernate运用反射机制直接访问类的属性. 3.自定义方式:自己写一个实现org.hibernate.property.PropertyAccessor接口的类,在access属性中写类的全限定名. 举例: ?