当前位置: 首页 > 知识库问答 >
问题:

如何在Spring Boot中连接SQL表?

万喜
2023-03-14

如何将类author中的author\u firstName和author\u lastName与类目绑定?我使用h2数据库,作者id和图书id是主键,我使用postman

public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "book_id")
    private int id;
    @Column(name = "book_title")
    private String title;
    @Column(name = "book_genre")
    private String genre;
    @Column(name = "author")
    private String author;

}
@Entity
@Table(name="Author")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Author {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="author_id")
    private int authorId;
    
    @Column(name="author_firstName")
    private String firstName;
    
    @Column(name="author_lastName")
    private String lastName;
    @Column(name="author_birth")
    private Date birth;

}

共有1个答案

戚升
2023-03-14

您应该将其转换为@manytone关系,而不是将字符串参数用于author

@Entity
@Table(name="Author")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Author {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="author_id")
    private int authorId;
    
    @Column(name="author_firstName")
    private String firstName;
    
    @Column(name="author_lastName")
    private String lastName;
    @Column(name="author_birth")
    private Date birth;

    @OneToMany(mappedBy = "author")
    private List<Book> books;

}
@Entity
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "book_id")
    private int id;
    @Column(name = "book_title")
    private String title;
    @Column(name = "book_genre")
    private String genre;

    @ManyToOne
    @JoinColumn(name = "author_id")
    private Author author;

}

使用此模型,您将能够从任何入口点、从作者(由特定作者编写的书籍)或拥有书籍的作者(由作者编写的书籍集合)的书籍中获取数据。

您可以使用findAllSpring Data JPA实现的默认实现(如果您使用EAGER读取类型,将自动加入这两个表),或者构建您自己的JPQL:

作者a FETCH JOINa.booksb WHEREa.id=b.author

这将有助于提高代码的易读性,并改进数据库数据规范化。

 类似资料:
  • 不修改服务器的java.security情况下,如何仅仅通过代码层面的修改(修改连接,加参数等)解决报错问题? 在公司,我无权做服务器的修改,仅能修改代码 报错如下

  • 在java reactor中,r2dbc。我有两个表A和B。我还为它们定义了存储库。如何获取由连接B组成的数据? 我只提出了以下方法:调用databaseClient。从A中选择,然后在循环调用中从B中选择。 但我想要更有效、更被动的方式。怎么做?

  • 如何将 JDBC 连接到 Microsoft SQL Server,以便我可以在 JMeter 中测试我的 SQL Server 数据库。 我正在使用Apache JMeter 2.13。我已经将sqljdbc4.jar文件放在JMeter/lib文件夹中。我还在MicrosoftSQLServer Management Studio中创建了一个非常简单的数据库,其中我的服务器名称是localho

  • 我如何匿名这使密码不显示?是否创建文件并将密码存储为变量,然后在.cfg conn字符串中引用该变量? 我阅读了以下内容,但有一个示例会有所帮助:https://airflow.readthedocs.io/en/stable/howto/set-config.html

  • 我正在尝试使用连接到。我正在使用和。 我在Gradle中添加了这些依赖项 配置文件如下所示: 应用yml 我得到了以下错误:

  • 我有一张siswa和kelas的联合表格。在kelas表中有一列idSiswa,它来自siswa表的id。问题是当kelas加入时,我如何从他那里获得id。当我尝试获取id时,它显示了来自siswa表的id,而不是来自kelas表的id,我也已经使用了右连接和左连接,但仍然没有得到答案 我使用来自laravel的查询生成器来运行查询,这是我的查询