DAO如何与领域一起使用?因为当我在活动中尝试设置模型类的成员时,会遇到异常:
java.lang.IllegalStateException:只能在事务内部完成更改领域数据。
我知道使用可以realm.executeTransaction解决问题,但是我的活动中的代码不再与数据库无关,因为它将使用特定于低级数据库通信的代码。因此,如果以后我想更改数据库,则重构将花费大量时间和工作...此外,我将在所有活动中都要处理对Realm.getDefaultInstance();
这是我的活动代码示例
protected void onCreate(Bundle savedInstanceState)
{
mBook = mBookDaoImpl.getBookById(bookId);
}
// Later in the code
private void saveBook(String name)
{
mBook.setName(name);
}
这是我的模特班
public class Book extends RealmObject
{
@Required
@PrimaryKey
private String id;
private String name;
public Book() {
}
public Book(String id, String name) {
this.id = id;
this.name = name;
}
// getter setter methods
}
这是我的DAO界面:
public interface BookDao
{
List<Book> getAllBooks();
Book getBookByIsbn(int isbn);
void saveBook(Book book);
void deleteBook(Book book);
}
相关分类