JPA

配置

  • maven
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
  • 配置Hibernate
spring.jpa.hibernate.ddl-auto=create-drop //每次启动自动新建表
spring.jpa.show-sql=true
  • 配置自动扫描
@EntityScan(value = "org.yiva.exam.springboot.jpa.pojo")
@EnableJpaRepositories(value = "org.yiva.exam.springboot.jpa.dao")

编码

  • 实体类

使用mappedBy的属性所表示的对象,是需要使用外键的类。mappedBy属性用于双向关联实体时,标注在不保存关系的实体中。

@Entity //注解此类是一个实体类
@Access(value = AccessType.FIELD) //通过属性进行参数声明
@Table(name = "t_students") //对应表名
public class Student {

    @Id //主键
    @GeneratedValue(strategy = GenerationType.IDENTITY) //自增
    private long id;

    @Column(length = 50)
    private String name;

    //主外键关联,将在t_score表中创建外键
    @OneToMany(mappedBy = "student")
    private List<Score> scores;

    //主外键关联,将在t_student_card表中创建外键
    @OneToOne(mappedBy = "student")
    private StudentCard studentCard;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

关联关系

表映射

  • OneToOne
  • OneToMany

指向的目录实体为需要外键的一方

  • ManyToOne
  • ManyToMany

实体加载方式

  • FetchType.EAGER

取A表数据,对应B表的数据都会跟着一起加载,速度慢

  • FetchType.LAZY

查询表A的数据时,访问不到表B的数据,速度快

继承

  • @Inheritance
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们都知道数据库表与表之间有如下四种关系 1:1(一对一,相应的注解叫@OneToOne)1:n(一对多,相应的注...
    DimonHo阅读 6,179评论 0 2
  • 2017年8月21日 我原本只想简单记录一下springboot中应用Jpa的简单操作。不想由于hibernate...
    行者N阅读 11,565评论 0 23
  • @Entity表示这个实体类是一个JPA实体,在程序运行的时候生成这个实体类所对应的表name:可选,表示表的名称...
    一块自由的砖阅读 4,982评论 0 0
  • 配置依赖 JAP作用 常用注解 @Table @Table(name="",catalog="",schema="...
    tenlee阅读 11,364评论 4 14
  • 10月1日 今天是新中国七十年大庆。一早上超市购水果和食材。十点,坐在电视观看阅兵仪式。明日要出远门,今日得多陪陪...
    青鹿deer阅读 1,352评论 0 3