Spring boot jpa (一) entity
【摘要】 前言本文介绍如何使用spring boot jpa entity。开发环境如下:项目说明jdk1.8idea2017-03(已经安装lombok插件)mysql 5.6推荐使用dockernavicatmysql 客户端操作步骤新建spring boot项目使用navicat新建数据库db_example修改配置文件./src/main/resources/application.prope...
前言
本文介绍如何使用spring boot jpa entity。
开发环境如下:
项目 | 说明 |
---|---|
jdk | 1.8 |
idea | 2017-03(已经安装lombok插件) |
mysql 5.6 | 推荐使用docker |
navicat | mysql 客户端 |
操作步骤
使用navicat新建数据库
db_example
修改配置文件
./src/main/resources/application.properties
spring.jpa.hibernate.ddl-auto=create spring.datasource.url=jdbc:mysql://localhost:3306/db_examplespring.datasource.username=root spring.datasource.password=123456
添加实体类book
package org.nick.bootstart.model;/* * @Author : Nick * @Description : * @Date : Create in 12:18 2018/4/30 **/import lombok.AllArgsConstructor;import lombok.Data;import lombok.Generated;import lombok.NoArgsConstructor;import javax.persistence.*;import java.util.HashSet;import java.util.Objects;import java.util.Set;@Data@NoArgsConstructor@AllArgsConstructor@Entitypublic class Book { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String title; private String isbn; public String publisher; @ManyToMany @JoinTable(name = "author_book", joinColumns = @JoinColumn(name = "book_id"), inverseJoinColumns = @JoinColumn(name = "author_id")) public Set<Author> authors = new HashSet<>(); @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Book book = (Book) o; return id == book.id && Objects.equals(title, book.title) && Objects.equals(isbn, book.isbn) && Objects.equals(publisher, book.publisher); } @Override public int hashCode() { return Objects.hash(id); } @Override public String toString() { return "Book{" + "id=" + id + ", title='" + title + '\'' + ", isbn='" + isbn + '\'' + ", publisher='" + publisher + '\'' + '}'; } }
添加Author
package org.nick.bootstart.model;/* * @Author : Nick * @Description : * @Date : Create in 12:36 2018/4/30 **/import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import javax.persistence.*;import java.util.HashSet;import java.util.Set;@Data@NoArgsConstructor@AllArgsConstructor@Entitypublic class Author { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String firstName; private String lastName; @ManyToMany(mappedBy = "authors") private Set<Book> books = new HashSet<>(); }
执行程序
打开navicat 查看数据库,发现已经初始化了相关表;
总结
这里spring.jpa.hibernate.ddl-auto可以是none,update,create,create-drop。具体含义如下:
none 不改变表结构
update 通过entity结构改变数据库结构
create 每次都打开的时候新建数据库,关闭的时候删除数据库
create-drop 创建数据库,然后在SessionFactory关闭的时候删除数据库;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)