【问题标题】:How to get an entity-related object correctly如何正确获取实体相关对象
【发布时间】:2021-02-05 01:07:45
【问题描述】:

我大约有以下实体:

public class Article {
    private String name;
    private Long fileId;
}

如您所见,它有一个字段fileld,其中包含关联文件的id,它也是一个实体。但是,该文件对Article 一无所知,因此唯一连接它们的是Article 中的fileId 字段。因此,它们必须明确链接,以免丢失。现在要获取链接文件,我必须为每个Article 对数据库进行单独查询。也就是说,如果我想获取 10 个Articles 的列表,我需要向数据库发出 10 次请求,并通过其 id 获取文件。这看起来非常低效。怎样才能做得更好?我用jooq,所以不能用JPA,所以不能用文件对象代替fileId字段。有什么想法吗?

【问题讨论】:

    标签: java spring java-8 entity jooq


    【解决方案1】:

    我将假设您的基础表是这样的:

    create table file (
      id      bigint primary key
      content blob
    );
    create table article (
      name    text,
      file_id bigint references file
    );
    

    如果您可以使用这样的单个查询将所有 10 个文件提取到内存中:

    Result<?> result =
    ctx.select()
       .from(ARTICLE)
       .join(FILE).on(ARTICLE.FILE_ID.eq(FILE.ID))
       .fetch();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 2020-02-14
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多