【问题标题】:Inner join on two tables in spring bootSpring Boot 中两个表的内部连接
【发布时间】:2019-12-03 08:51:48
【问题描述】:

我有 2 个实体,想对这两个表的 ID 执行内部联接。我怎么做?加入表格后,如何获取值?

第一个实体:Employee.java

    @Entity
    @Table(name = "emp")
    public class Employee {
    @Id

    @Column(name = "id", nullable = false)
    private int id;


    @Column(name = "language", nullable = false)
    private String language;

第二个实体:Username.java

    @Entity
    @Table(name = "users") 
    public class Username {
    @Id

    @Column(name = "id", nullable = false)
    private int id;


    @Column(name = "name", nullable = false)
    private String name;

谢谢

【问题讨论】:

    标签: spring-boot spring-data-jpa inner-join


    【解决方案1】:

    我不知道它对你有没有帮助,但是,

    你必须先给出这些表之间的关系(这里我定义了双向关系)。 我想有@OneToOne 映射。如下所示, 在员工表中,

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "username_id")
    private Username username;
    
    @OneToOne(mappedBy = "employee")
    private Employee employee;
    

    当您需要这些数据库时,以同样的方式在您的员工存储库中按以下方式放置查询,

    @Query(nativeQuery = true, value="<your-join-query>")
    public Employee getEmployeeAllDetails();
    

    如需更简短的详细信息,请遵循此类教程,这些教程可让您更好地了解如何使用机械装置。

    https://howtodoinjava.com/

    https://www.baeldung.com/

    【讨论】: