【发布时间】:2020-01-06 21:03:40
【问题描述】:
这是我的代码:
ClassEntity.java
@Entity
public class ClassEntity {
@NonNull
@PrimaryKey
public String id_of_a_group;
public String monday;
public String tuesday;
public String wednesday;
public String thursday;
public String friday;
}
Dao.java
@androidx.room.Dao
public interface Dao {
@Query("SELECT monday FROM ClassEntity WHERE id_of_a_group = :id")
List<ClassEntity> findFromMonday(String id);
@Query("SELECT tuesday FROM ClassEntity WHERE id_of_a_group = :id")
List<ClassEntity> findFromTuesday(String id);
@Query("SELECT wednesday FROM ClassEntity WHERE id_of_a_group = :id")
List<ClassEntity> findFromWednesday(String id);
@Query("SELECT thursday FROM ClassEntity WHERE id_of_a_group = :id")
List<ClassEntity> findFromThursday(String id);
@Query("SELECT friday FROM ClassEntity WHERE id_of_a_group = :id")
List<ClassEntity> findFromFriday(String id);
@Query("SELECT id_of_a_group FROM ClassEntity")
List<ClassEntity> getIdOfAllGroups();
@Insert
void insert(Class group);
@Update
void update(Class group);
@Delete
void delete(Class group);
}
Database.java
@androidx.room.Database(entities = {ClassEntity.class},version=1)
public abstract class Database extends RoomDatabase {
public abstract Dao classDao();
public abstract Array[] getIdOfAllGroups();
}
App.java
public class App extends Application {
public static App instance;
private Database database;
@Override
public void onCreate() {
super.onCreate();
instance = this;
database = Room.databaseBuilder(this, Database.class, "database")
.build();
}
public static App getInstance() {
return instance;
}
public Database getDatabase() {
return database;
}
}
编译器给了我这个错误:
ClassEntity has some fields [id_of_a_group, tuesday, wednesday, thursday, friday] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: monday. Fields in com.example.schedule.ClassEntity: id_of_a_group, monday, tuesday, wednesday, thursday, friday.
我不知道解决方案,因为我是新手。 顺便说一句,我需要检查数据库中是否有该项目。
这是我的猜测,如果我错了,请告诉我
Others2 activity=(Others2)getActivity();
getData=activity.sendData();
Database db = App.getInstance().getDatabase();
String[] ids_of_all_groups=db.getIdOfAllGroups();
boolean test=false;
for( String elem: ids_of_all_groups){
if(getData==elem){
test=true;
break;
}
}
【问题讨论】:
标签: java android-room