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

查询类型-房间中对象的转换列表

赫连骏
2023-03-14
@Entity
@JsonIgnoreProperties(ignoreUnknown = true)
public class Product
{
    @PrimaryKey
    @ColumnInfo(name = "ID")
    @JsonProperty("ID")
    public int id;

    @ColumnInfo(name = "Name")
    @JsonProperty("Name")
    public String name;

    @ColumnInfo(name = "Documents")
    @JsonProperty("Documents")
    @TypeConverters(DocumentConverter.class)
    public List<Document> documents;
}

//...

@TypeConverters(DocumentConverter.class)
@JsonIgnoreProperties( ignoreUnknown = true )
@JsonTypeName("Documents")
public class Document
{
    @JsonProperty("Name")
    public String name;

    @JsonProperty("URL")
    public String url;
}

我可以根据产品名称检索产品,方法如下所示

@Query("SELECT * FROM Product WHERE Name = :name")
List<Product> getProducts(String name);

然后我就可以访问每个产品对象的文档列表。然而,我也想只处理产品,有一定的文件。我可以通过上面这样的查询获得所有产品,然后手动筛选我想要的文档,但是当我只查找非常特定的文档时,这会变得相当痛苦。

@Query("SELECT * FROM Product WHERE Name = :name AND Document.name = :documentName")
List<Product> getProducts(String name, String documentName);

多谢了。

共有1个答案

邵胜涝
2023-03-14

您可以使用LIKE sql语句在json列中搜索with converted documents列表。示例:假设我们有这样的文档转换以存储在DB中:

{
    name: "Title",
    url: "Your_url"
}

因此您对列表中包含此类文档的产品的查询应该如下所示:

SELECT * FROM Product WHERE Name = :name AND Documents LIKE :documentLikeExpr

哪里

String documentLikeExpr = "%name: \"Title\"%";
 类似资料:
  • 我正在努力理解在这段代码中创建的C()对象。 我理解,当它在第3行创建时,它是一个对象,具有A类中的引用。我还了解到,您可以从B类中的引用中引用第4行的相同对象。但是我不明白第4行参考o1的施法。这改变了对象还是仅仅改变了它被引用的方式? 我真的很感激你的解释:)谢谢

  • 主要内容:强制对象类型转换将一个类型强制转换成另一个类型的过程被称为类型转换。本节所说的 对象类型转换,是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时,会抛出 Java 强制类型转换(java.lang.ClassCastException)异常。 Java 语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换。Java 中引用类型之间的类型转换(前提是两个类

  • 对API控制器的远程调用(通过RestTemboard)(从一侧返回已知对象的List([]),从远程侧返回未知类型的对象)返回

  • 问题内容: 就性能而言,对象类型转换的代价是多少? 在可能的情况下,我应该尽量避免进行类型转换吗? 问题答案: 它足够便宜,因此属于过早优化类别。除非您已对应用程序进行了概要分析并确定这是一个问题,否则不要浪费时间甚至就此思考或提问,最重要的是:不要为了避免它而妥协您的设计。

  • 我试图创建动态下拉,其值是从使用微服务的查找表之一填充,但我已经尝试了许多方式相同,到目前为止,我还没有成功地使其工作。 下面的代码用于调用webservice 这是我的对象类型 仅用于显示目前运行的以下代码 我做了什么我尝试调用webservice在多种方式调用它,尝试铸造服务响应直接使用JSON字符串响应和可能的事情我尝试过。 你能在这里帮忙吗?我们将不胜感激。

  • 主要内容:1.底层的转换接口,2.高层的转换接口,3.演示高级接口类型转化,4.Spring中是如何操作泛型参数的,5.ConversionService扩展和@InitBinder扩展1.底层的转换接口 Spring提供的接口 Printer: 其他类型转为String Parser: String转为其他类型 Formatter: Printer + Parser Converter: 类型S转为类型T Printer, Parser, Converter通过适配转换为GenericConv