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

在忽略某些值的情况下,OneToMany映射的MySQL查询的时间效率最高的是什么?

谷越
2023-03-14

我有对象文档。此文档与属性的OneTo很多关联定义如下:

    @OneToMany(mappedBy = "parentDocument", cascade = CascadeType.ALL)
    private Set<CustomProperty> customProperties = new HashSet<>();
    @IndexedEmbedded
    @ManyToOne
    @JoinColumn(name = "document_id", referencedColumnName = "id")
    private Document parentDocument;

对象文档有一些我不想查询的值,例如内容和许多其他值。我可以使用JPA findAll方法,但由于上面提到的值,这需要太长时间。如何创建查询忽略一些但不是所有值并且还包括subObject(在本例中为CustomProperty)?此外,这个问题的全部原因是我正在重写缓慢的代码。这就是为什么我考虑html" target="_blank">性能,所以欢迎任何性能建议!

我确实尝试创建自定义查询,定义如下:

@Query("select new Document (d.id, d.title, d.customProperties) from Document as d)

这确实可以编译,但不起作用,会引发错误:
您的SQL语法有错误;查看与MySQL服务器版本相对应的手册,以了解使用near'的正确语法。如第1行文档0\uuinner join custom\u properties customprop“中的col\u 12\u 0\u1行查询工作时,查询内部没有d.customProperties。

谢谢你的帮助!

共有1个答案

长孙雅志
2023-03-14

尝试此查询:

@Query("select d.id, d.title, d.customProperties from Document d")
 类似资料:
  • 问题内容: 鉴于以下课程 当我们验证它(例如,使用@Valid)并且如果Website.url不遵守我的自定义@ValidUrl约束时,我们将遇到约束冲突(例如,“ URL不可访问”)。 我想知道如果用户愿意,是否可以忽略该验证。 脚步: 第一次验证表格 引发约束冲突并将其显示给用户 用户选择“我知道,仍然添加”,然后重新提交 第二次验证表单,验证@ValidUrl以外的所有内容 问题答案: 您可

  • 我有Solr 5.3.1,需要查询除某些字段之外的所有字段(我需要在某些字段中搜索而不是以这种方式检索字段[/?q=query&fl=field1,field2,field3]) 2.[以下解决方案有效,但需要更多时间] 3.我在data-config.xml中设置了indexed=“false”,它只忽略此字段中的搜索,但是当我搜索所有字段http://localhost:8983/solr/t

  • 我有一个hibernate代码,它与默认的联接列值配合得很好,但是当我将联接列值更改为应用程序约定所需的值时,它开始崩溃。 之前:

  • 问题内容: 我有一个由不同线程同时读取的表。 每个线程必须选择100行,在每行上执行一些任务(与数据库无关),然后它们必须从表中删除选定的行。 使用此查询选择行: 我的问题是:如何忽略(或跳过)以前使用MySQL中的select语句锁定的行? 问题答案: 我通常创建一个默认为NULL的process_id列,然后让每个线程使用唯一的标识符来执行以下操作: 这样可以确保每个线程从表中选择唯一的行集。

  • 我知道拥有一个空的类通常是一个设计缺陷,但是在我的情况下,它是否是最好的选择,或者对于这个Scnario来说,什么是最好的设计呢? ClassA是一个空的超类这里是我的代码 ClassB是从ClassA派生的