Hibernate-Annotation(上)

简介: Hibernate-Annotation

使用hibernate注解的目的


为了简化ORM映射文件(*.hbm)繁琐的配置。

注解需要做的是映射文件要做的。


JPA与Hibernate


Java Persistence API

Java持久化接口

JPA是标准接口,HIbernate是JPA的实现,但是功能是JAP的超集。


Hibernate注解分类

  1. 类级别注解
  1. @Entity
  2. @Table
  3. @Embeddable(嵌入类)
  1. 属性级别注解
  2. 映射关系注解


一,类级别注解



1.   @Entity


image.png


1.  编写Entity


设置主键,打在getter上@Id


2.  class添加注解@Entity

3.  在核心配置文件中配置

<!--映射文件-->
        <mapping class="Entity.Student"/>

2.   @Table


image.png

@Tabel(name="")和@Entity(name="")


@Table's name attribute is the actual table name. @Entitiy's name is useful if you have two @Entity classes with the same name and you need a way to differentiate them when running queries.

From Stack Overflow


3.   @Embeddable


表示一个非Entity类可以嵌套到另一个Entity中,作为另一个Entity的属性。

package Entity;
import javax.persistence.Embeddable;
/**
 * Created by futao on 2017/9/27.
 */
/**
 * 嵌入类,不会生成表,可能在其他表作为属性存在
 */
@Embeddable
public class Gf {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

package Entity;
/**
 * Created by futao on 2017/9/26.
 */
import javax.persistence.Column;
import javax.persistence.Entity;    //JPA注解
import javax.persistence.Id;
import javax.persistence.Table;
import java.sql.Timestamp;
/**
 * 学生实体类
 */
@Entity
@Table(name = "imooc_student1")
public class Student {
    /**
     * 主键
     */
    @Column(name = "sid")
    private int sid;
    /**
     * 姓名
     */
    @Column(name = "sname")
    private String sname;
    /**
     * 性别
     */
    @Column(name = "gender")
    private String gender;
    /**
     * 生日
     */
    @Column(name = "birthday")
    private Timestamp birthday;
    /**
     * 专业
     */
    @Column(name = "major")
    private String major;
    /**
     * 地址
     */
    private String address;
    //组件属性
    private Gf gf;
    @Id
    public int getSid() {
        return sid;
    }
    public void setSid(int sid) {
        this.sid = sid;
    }
    public Gf getGf() {
        return gf;
    }
    public void setGf(Gf gf) {
        this.gf = gf;
    }
    public String getSname() {
        return sname;
    }
    public void setSname(String sname) {
        this.sname = sname;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public Timestamp getBirthday() {
        return birthday;
    }
    public void setBirthday(Timestamp birthday) {
        this.birthday = birthday;
    }
    public String getMajor() {
        return major;
    }
    public void setMajor(String major) {
        this.major = major;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}


二,属性级别注解



添加方式

1.写在属性字段上面

2.写在getter上面


@Id

@SequenceGenerator

@GeneratedValue

@Column

@Embedded

@EmbeddedId

@Lob

@Version

@Basic

@Transient


1.  @Id


image.png

可以给一个Entity设置两个主键,不过要实现Serializable接口


2. @GeneratedValue


image.png

image.png


3. @GeneratedValue

4. @Column


image.png


5. @Embedded,@EmbeddedId


打在被标记为@Embeddable的嵌入类的实例上,或者getter上


image.png

6. @Transient


image.png


相关文章
|
14天前
|
Java 数据库连接 Spring
spring配合hibernate报错:sessionFactory or hibernateTemplate is required
根据你的具体情况,检查上述步骤中的一个或多个,以确定为何出现“sessionFactory or hibernateTemplate is required”错误,并采取相应的措施进行修复。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
5 0
|
XML Java 数据格式
JavaConfig与常见Annotation(必知必会系列)
上一篇我们介绍了 Spring中Bean的生命周期,这一篇我们接着学习在Spring Boot中的一些常用注解。
130 0
JavaConfig与常见Annotation(必知必会系列)
|
存储 Java 数据库连接
Hibernate-Annotation(下)
Hibernate-Annotation(下)
Hibernate-Annotation(下)
|
Java Spring
Spring 基于注解(annotation)的配置之@Required注解
Spring 基于注解(annotation)的配置之@Required注解
111 0
Spring 基于注解(annotation)的配置之@Required注解
|
Java Spring
Spring 基于注解(annotation)的配置之@Qualifier注解
Spring 基于注解(annotation)的配置之@Qualifier注解
153 0
Spring 基于注解(annotation)的配置之@Qualifier注解
|
XML Java 数据库连接
Hibernate 注解方式
第一次接触HIbernate都是以XML方式,今天来看看注解的方式如何写 1. hibernate的常用注解 //标识实体类 @Entity //该实体类对应的表 默认对应的表为类名 可通过@Table(name ="xxx")来标识实体类名与表名不...
1262 0
|
Java 数据库连接 数据库
|
Java 数据库连接
Hibernate-Annotation
课程地址 使用hibernate注解的目的 为了简化ORM映射文件(*.hbm)繁琐的配置。 注解需要做的是映射文件要做的。 JPA与Hibernate Java Persistence API Java持久化接口 JPA是标准接口,HIbernate是JPA的实现,但是功能是JAP的超集。
945 0