在 Spring boot - H2 数据库中创建外键

假设我有两个简单的表要在我的Spring Boot应用程序中实现。

这是ER图:

http://img2.mukewang.com/64895bee00016d3c06430233.jpg

这是我的PasswordReset课:


@Data

@Entity

public class PasswordReset {

@Id @GeneratedValue Long passwordResetID;

String eMail;

String token;

String createdAt;



PasswordReset()

{


}

public PasswordReset(String eMail,String token,String createdAt)

{

    this.eMail=eMail;

    this.token=token;

    this.createdAt=createdAt;

}

}

这是我的User课(部分):


@Data

   @Entity

   public class User {

@Id @GeneratedValue Long UserID;

String eMail;

String createdAt;

String updatedAt;



User()

{


}

public User(String eMail,String createdAt,String updatedAt)

{

    this.eMail=eMail;

    this.createdAt=createdAt;

    this.updatedAt=updatedAt;

}

}

现在我的问题是如何在我的Spring Boot项目中创建外键,如我的 ER 图?


这是我的pom.xml:


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>2.1.6.RELEASE</version>

    <relativePath/> <!-- lookup parent from repository -->

</parent>

<groupId>com.mua</groupId>

<artifactId>cse616</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>cse616</name>

<description>Project for CSE-616</description>


<properties>

    <java.version>11</java.version>

</properties>


<dependencies>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-data-jpa</artifactId>

    </dependency>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web-services</artifactId>

    </dependency>


长风秋雁
浏览 138回答 1
1回答

尚方宝剑之说

mappedBy在父实体(拥有实体)CascadeType.PERSIST,CascadeType.ALL根据一个请求保存一个孩子和一个父母(你可以根据需要找到其他的CascadeType)@JoinColumn在我们必须加入的列的子实体User.java@OneToMany(mappedBy="user",fetch=FetchType.LAZY,cascade = CascadeType.PERSIST)private List<ResetPassword> resetpassword = new ArrayList<ResetPassword>();ResetPassword.java@ManyToOne(fetch = FetchType.LAZY, targetEntity = User.class)@JoinColumn(name="userId", referencedColumnName = "userId", nullable = false)private User user;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java