spring - 如何在spring jpa中以一对多关系插入数据

标签 spring spring-boot spring-data-jpa

我是 Spring 的新人。我想将数据插入到 AUDIT 表中。 USER 表和AUDIT 表之间存在一对二多关系。

对于每个登录和注销数据都应该插入到AUDIT 表中。我该怎么做?

用户实体:

@Table(name="USER")
public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="USERID")
    private Long id;

    private String username;

    private String email;

    private Long phone;

    private String password;

    private int OTP;

    private boolean activation_flag;

    @OneToMany(cascade=CascadeType.ALL)
    @JoinColumn(name="USERID")
    private Set<Audit> audit;

    @ManyToOne
    @JoinColumn(name="ADDRESSID")
    private Address address;

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(
            name = "USER_AUTHORITY",
            joinColumns = {@JoinColumn(name = "USER_ID", referencedColumnName = "USERID")},
            inverseJoinColumns = {@JoinColumn(name = "AUTHORITY_ID", referencedColumnName = "ID")})
    private List<Authority> authorities;

审计实体:

@Entity
@Table(name="AUDIT")
public class Audit {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="AUDITID")
    private long auditid;

    @Column(name="GEOLOCATION")
    private String geolocation;

    @Column(name="ACTION")
    private String action;

    @Column(name="DATETIME")
    private Date datetime;

    @Column(name="DEVICEID")
    private long deviceid;

    @Column(name="ACTIONSUCCESS_FAIL")
    private boolean actionsuccess_fail;

    @Column(name="JWT_TOKEN")
    @Type(type="text")
    private String JWT_token;

    @ManyToOne
    private User user;

审计存储库:

public interface AuditRepository extends JpaRepository<Audit, Long> {
}

用户存储库:

public interface UserRepository extends JpaRepository<User, Long> {

    User findByUsername(String username);
    User findByEmail(String email);
    User findByPhone(Long phone);
    User findById(Long id);

}

最佳答案

将审核添加到您希望审核关联的用户,然后保存。

关于spring - 如何在spring jpa中以一对多关系插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46130889/

相关文章:

java - Spring Data Jpa - 扫描测试文件夹中的文件

spring - JMeter性能测试下出现Activiti死锁

java - Spring AOP && MVC 的排序方面

spring-boot - 无法从 Flux/Mono 读取值

java - 如何使用 Spring Data JPA 更新实体中的集合字段?

java - 如何使用 "Spring Data JPA"规范进行单元测试方法

mysql - 在控制台中从 Spring JPA 查询与原始 SQL 获取不同的结果

java - Junit - Spring - 测试集合

java - Spring 3.1 : Non-XML equivalent of annotation-driven transaction management

java - 无法在 Spring-boot 中使用自签名 https 验证来自 Postman 的 POST/GET 请求方法