Я не могу прочитать несколько столбцов в базе данных комнаты - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь прочитать идентификатор и имя, используя базу данных комнаты, но я получил эту ошибку перед запуском приложения:

Каталог экспорта схемы не предоставлен обработчику аннотаций, поэтому мы не можем экспортировать схему. Вы можете предоставить room.schemaLocation аргумент процессора аннотации ИЛИ установить для exportSchema значение false.

Нет проблем, если я читаю идентификатор или имя отдельно, но не могу прочитать идентификатор и имя вместе

Пример кода (это работает без проблем)

AppDatabase appDatabase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_categories);
        ButterKnife.bind(this);
        appDatabase = Room.databaseBuilder(CategoriesActivity.this, AppDatabase.class, "RDatabase").allowMainThreadQueries().build();
        Log.w("name", appDatabase.userDao().getAll());
    }

    @Entity
    public class User {
        @PrimaryKey
        int uid;

        @ColumnInfo(name = "first_name")
        String firstName;
    }

    @Dao
    public interface UserDao {
        @Insert
        void insertAll(User... users);

        @Query("SELECT first_name FROM user")
        String getAll();
    }

    @Database(entities = {User.class}, version = 1)
    public abstract static class AppDatabase extends RoomDatabase {
        public abstract UserDao userDao();
    }

Пример кода (это не работает, потому что я читаю id и имя вместе)

AppDatabase appDatabase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_categories);
        ButterKnife.bind(this);
        appDatabase = Room.databaseBuilder(CategoriesActivity.this, AppDatabase.class, "RDatabase").allowMainThreadQueries().build();
        List<User> a = appDatabase.userDao().getAll();
        Log.w("aaa","" + a.get(0).uid);
    }

    @Entity
    public class User {
        @PrimaryKey
        int uid;

        @ColumnInfo(name = "first_name")
        String firstName;
    }

    @Dao
    public interface UserDao {
        @Insert
        void insertAll(User... users);

        @Query("SELECT uid,first_name FROM user")
        List<User> getAll();
    }

    @Database(entities = {User.class}, version = 1)
    public abstract static class AppDatabase extends RoomDatabase {
        public abstract UserDao userDao();
    }

Я пытался поставить exportSchema to false после версии, но я получил эту ошибку

ошибка: требуется экземпляр включения, который содержит CategoriesActivity.User

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...