java– 房间 – 比较实体中的列表

java– 房间 – 比较实体中的列表,第1张

概述我有房间问题.我有一个实体:@Entity(tableName="Entity")dataclassEntity(valrecipients:List<ID>?){@ColumnInfo(name="id")@PrimaryKey(autoGenerate=true)varid:Long=0}如您所见,它包含ID列表(typealiasID=Long)所以,我做了TypeConve

我有房间问题.
我有一个实体:

@Entity(tablename = "Entity")data class Entity(val recipIEnts: List<ID>?) {    @ColumnInfo(name = "ID")    @PrimaryKey(autoGenerate = true) var ID: Long = 0}

如您所见,它包含ID列表(typealias ID = Long)
所以,我做了TypeConverter:

@TypeConverterfun getlistofLongs(data: String?): List<ID> {    if (data == null) {        return Collections.emptyList()    }    val ListType = object : Typetoken<List<Long>>() {}.type    return gson.fromJson(data, ListType)}@TypeConverterfun convertListToString(IDs: List<ID>): String = gson.toJson(IDs)

但我有一个问题,我无法正确查询此列表:

@query("select count(*) from Message where recipIEnts in (:recipIEnts)")fun count(recipIEnts: List<ID>?): Int

如您所见,我需要比较两个列表(实体列表和方法列表)并从方法列表中获取包含ID的所有实体,但此查询始终返回0.我读过TypeConverter列表可能有问题,但我可以找不到任何解决方案.

解决方法:

用@Rawquery解决它:

" WHERE recipIEnts liKE ${recipIEnts.joinToString(",", "\"", "\"")}"

结束编辑TypeConvertor:

@TypeConverterfun getlistofLongs(data: String?): List<Long> {    if (data == null) {        return Collections.emptyList()    }    val ListType = object : Typetoken<List<Long>>() {}.type    return gson.fromJson("[$data]", ListType)}@TypeConverterfun convertListToString(IDs: List<Long>?): String? {    if (IDs == null) return null    var IDsstring = gson.toJson(IDs)    IDsstring = IDsstring.replace("]", "")    IDsstring = IDsstring.replace("[", "")    return IDsstring}
总结

以上是内存溢出为你收集整理的java – 房间 – 比较实体中的列表全部内容,希望文章能够帮你解决java – 房间 – 比较实体中的列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存