gpt4 book ai didi

android - 如何在android房间中使用distinct

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:18 25 4
gpt4 key购买 nike

我正在使用 android room 而不是 sqllite。在我的应用程序数据库列中有多个记录。例如我的列名是国家。值是

  • 印度
  • 德国
  • 卡塔尔
  • 德国
  • 爱尔兰
  • 沙特
  • 美国
  • 德国
  • 非洲
  • 卡塔尔
  • 德国

我要的结果是

  • 印度
  • 德国
  • 卡塔尔
  • 爱尔兰
  • 沙特
  • 美国
  • 非洲

卡塔尔德国来了不止一次。我想整理成单个项目。我使用了 SELECT DISTINCT name from country。但它显示错误。我的代码如下所示。

CountryDao.java

@Dao
public interface CountryDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void addCountry(Country country);
@Query("SELECT DISTINCT name from country")
public List<Country> getCountry();
}

国家.java

@Entity
public class Section {
@PrimaryKey(autoGenerate = true)
private int id;
private String name;

public Section(int id, String name){
this.setId(id);
this.setName(name);
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

它显示错误是查询返回的列在 com.android.db.Country 中没有 [id] 字段,即使它们被注释为非空或原始。查询返回的列:[name]

AppDatabase.java

@Database(entities = {Country.class}, version = 5, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase{
private static AppDatabase INSTANCE;
public abstract ClassDao classDao();
public abstract SessionDao sessionDao();
public abstract SectionDao sectionDao();
public static AppDatabase getDatabase(Context context) {
if (INSTANCE == null) {
INSTANCE =
Room.databaseBuilder(context, AppDatabase.class, "edumiadatabase").fallbackToDestructiveMigration()
.build();
}
return INSTANCE;
}

public static void destroyInstance() {
INSTANCE = null;
}
}

在我的 Activity 中通过添加此代码获取数据。 ``列表 co = database.countryDao().getCountry();

最佳答案

我通过改变得到了答案我更改了 CountryDao.java 中的查询。将查询重写为

@Query("SELECT DISTINCT name from country")
public List<String> getCountry();

然后像这样调用 Activity 。

 List<String> co = database.countryDao().getCountry();
for(int i=0; i<co.size();i++) {
Log.d(TAG, "country:" + co.get(i));
}

问题是在我的代码中按对象获取列表,但我想要它在字符串中。感谢所有的 friend 。

关于android - 如何在android房间中使用distinct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47815148/

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