gpt4 book ai didi

android - 查找 String[] 是否包含 Room 数据库 Android 中的 String

转载 作者:行者123 更新时间:2023-12-04 23:55:19 26 4
gpt4 key购买 nike

我想在我的表中搜索一个字符串数组,它应该包含一个字符串。

这是我的模型

@ColumnInfo(name = DbConstants.ColumnNames.ConversationData.AGENTS_ID)
@SerializedName("agentsId")
public String[] agents;

这是我的类型转换器

 @TypeConverter
public String fromStringsToJson(String[] strings) {
if (strings == null)
return null;
return new Gson().toJson(strings);
}

@TypeConverter
public String[] fromJsonToStrings(String string) {
if (string == null)
return null;

Gson gson = new Gson();
Type type = new TypeToken<String[]>() {
}.getType();
return gson.fromJson(string, type);
}

@TypeConverter
public String fromStringMapToJson(Map<String, String> map) {
if (map == null)
return null;

Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
return gson.toJson(map, type);
}

@TypeConverter
public Map<String, String> fromJsonToMap(String json) {
if (json == null)
return null;

Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
return gson.fromJson(json, type);
}

这是 DAO 查询

@Query("select * from conversations where channelId = :channelId AND " +
" agentsId LIKE :agentId ORDER BY updateTimeStamp DESC")
List<ConversationData> getMyConversations(String channelId, String agentId);

一切都已完美设置。我想问题是 ConverterQuery

之一

但是在字符串数组中找不到agentId。

最佳答案

对于那些寻求答案的人。

问题出在我的查询上。我刚刚用这个更新了它。

@Query("select * from conversations where channelId = :channelId AND status = :status AND" +
" agentsId LIKE '%' || :agentId || '%' ")

希望对您有所帮助。

关于android - 查找 String[] 是否包含 Room 数据库 Android 中的 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60616447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com