带领域的DAO模式

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);

}


catspeake
浏览 149回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java