【问题标题】:SQL-query in JPAJPA 中的 SQL 查询
【发布时间】:2012-10-24 09:57:45
【问题描述】:

我们有这个学校项目,我们正在创建一个图书库系统,其主要目的是使用数据库连接。在这种情况下,JPA 和 ObjectDB。

我们的问题是我们有 3 张桌子。一个描述一本书(书名、作者和出版年份),第二个是借阅者(名字、姓氏、地址、电子邮件和电话号码),最后一个表是从其他两个获取主 ID 密钥的借出功能表格。

问题在于,当我们使用列表借书功能时,它只打印出另外两个表中的 ID。我们认为问题出在 SQL 查询上,我们还没有机会正确学习 SQL。

所以我们的问题是,我们如何创建一个 SQL 查询,该查询从 book-table 中获取 title,从 borrower 表中获取名字和姓氏,而不是 ID。

我们只设法工作的 SQL 查询是这样的:

TypedQuery<BokLån> q = em.createQuery("SELECT bookborrow FROM BookBorrow BookBorrow", BookBorrow.class);

【问题讨论】:

  • 您应该发布 BookBorrow 和任何其他相关实体的 @entity 定义。

标签: java sql jpa objectdb


【解决方案1】:

IT 是 fetch 和 fetch 类型机制的问题。目前您的实体是惰性加载的,您可以在实体类中急切地加载它们

【讨论】:

    【解决方案2】:

    您需要编写一个适当的 JOIN 语句来将借贷表与其他表结合起来,并从那里检索信息。

    类似的东西:

    SELECT 
        book.title, 
        person.firstname, 
        person.lastname 
    FROM
       borrower
         JOIN book ON book.bookid = borrower.bookID
         JOIN person ON person.personid = borrower.personid
    

    它的工作方式是 ON 条件指定如何将表格绑定在一起。在您的情况下,借用者表具有与 person 表中的 PersonID 列相关的 personID。建立与 JOIN 的链接,然后您可以访问 Person 表中的其他列。

    同样的方法也适用于书桌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 2015-04-11
      • 2019-10-01
      • 1970-01-01
      • 2020-09-13
      • 2011-05-20
      • 2021-06-27
      相关资源
      最近更新 更多