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)