Articles of ORM

调用Rooms inMemoryBuilder方法时,Room Persistence Library运行时exception

按照设置Room余好库的教程时,我在Android设备上测试时遇到此错误。 java.lang.RuntimeException:找不到PackageName .AppDatabase的实现。 AppDatabase_Impl不存在 我知道有一个类似的问题,但问题是由于kotlin gradle问题。 可能重复 测试类: @RunWith(AndroidJUnit4.class) public class LocalDatabaseTest { private PhotoDao mPhotoDao; private AppDatabase mDb; @Before public void createDb() { Context context = InstrumentationRegistry.getTargetContext(); mDb = Room.inMemoryDatabaseBuilder(context.getApplicationContext(), AppDatabase.class).build(); mPhotoDao = mDb.photoDao(); } @After public void closeDb() throws IOException { //mDb.close(); } @Test public void testPreConditions() { assertNotNull(mDb); } 道: @Dao public […]

greenDao架构升级

我看过另一个关于使用green dao进行模式升级/迁移的问题( 这里 ) 在该答案中有许多链接可用于在进行模式升级时使用的良好模式 – 但是没有关于您实际对数据执行的操作的示例,以便正确地迁移它并且我无法find任何内容。 就我而言,我的迁移非常直接 – 我不希望转换任何现有数据,我只需要在我的模式中添加一些新表,我怀疑这是一种相当常见的情况。 在不删除用户已保存的数据的情况下,将新表添加到架构的最简单方法是什么? 非常感谢一个具体的例子。 如果greenDao提供了一个类似于DevOpenHelper的类,它将简单地添加先前不存在于模式中的新表/列而不首先丢弃现有的tabes / data,这将是非常棒的。

Android SQLite和数据库方案上的ORM

我正在寻找一个非常简单的ORM框架,在Android上运行SQLite。 我一直在测试ActiveAndroid,但是没有一个例子能够在Eclipse上构建。 顺便说一下,人们如何在SQLite for Android中实现“多对多”的关系? 您如何反映有关删除行并保证数据库完整性的级联?

适用于Android的高级数据库层?

是否有任何良好的数据库抽象层/对象关系映射器/ ActiveRecord实现/它们为Android调用的是什么? 我知道db4o是官方支持的,但它有相当大的占用空间,我宁愿使用更传统的数据库( SQLite )。

使用从Jackson创建的对象在Android上使用OrmLite保存子集合

我有一个REST服务,我正在从我的应用程序调用,它将一个JSON对象作为byte[]引入,然后将其转换为一个漂亮的嵌套对象集合 – 所有这些都可以正常工作。 我当时想要做的是使用OrmLite将这些对象持久化到SQLite存储,这就是事情开始崩溃的地方,因为据我所知,OrmLite不会自动持久化嵌套对象。 为简单起见,让我们删除我的实际function,并让我的对象简单地建模如下: @DatabaseTable(tableName = “parents”) public class Parent { @DatabaseField(id=true) private String name; @ForeignCollectionField // have to use Collection here because needs to be compatible with Jackson private Collection children; /* Getters and setters go here */ } @DatabaseTable(tableName = “children”) public class Child { @DatabaseField(id=true) private String name; @DatabaseField(foreign=true) private Parent […]

Android OrmLite预填充数据库

OrmLite是否可以创build一个sql脚本文件来轻松地用数据填充数据库? 我做了一些search,不能拿出任何简单的东西。 我知道我可以用数据创build一些对象,我只是在寻找一个更清洁的方法。 我想创build一个脚本文件,加载时打开一个阅读器,并将每个文件作为原始SQL执行executeRaw()方法。 有什么想法吗?

ORMLite中的集合

你好我想在我的android应用程序中使用ORMlite保存一些集合数据。 例如 : class Person { @DatabaseField(generatedId=true) private int id; @DatabaseField private String name; @DatabaseField private String surname; @ForeignCollectionField private Collections<Phone> phones; } class Phone { @DatabaseField(generatedId=true) private int id; @DatabaseField private String number; @DatabaseField private String type; } 我应该怎么做才能坚持这个collections。 编辑 正如你告诉我的,我使用ForeignCollectionField。 但现在我还有一个问题 – 可能是这样的build设(我改变了一点) @DatabaseTable public class Student { @DatabaseField(generatedId=true) private int id; @DatabaseField […]

ORMLite JOINs或者rawQuery自动映射

我正在寻找一种方法来做一个需要JOIN的查询。 有没有办法做到这一点在准备好的声明,或者是rawQuery我唯一的select。 如果rawQuery是唯一的select,那么有没有办法将返回的对象自动映射到正在实现的Dao的对象。 我已经挖掘了文档和示例,但是找不到任何能够将原始数据库结果映射到ORM对象类的内容。

在android中使用ORMLite持久化Collection类

我有两个类设置如下。 我很困惑,何时需要将某些东西注释为外来collections,何时我不需要。 这也许听起来很愚蠢,但是在ORMLite文档中没有地方说是否允许非外部收集。 如果我有一个int列表被自动复制到Integer呢? 我可以坚持使用@DatabaseField上面的标准@DatabaseField吗? 根据ORMLite ,外国collections品也必须有相关的参考资料才能发挥作用(对于父母来说,提供一对多的关系)。 对于下面的例子,我假设你应该注释myBList作为一个外国集合,以及使myA外国对象,但你怎么处理myStringList ? 我看到示例代码在这里,但它不回答我的问题: http : //ormlite.com/docs/examples public class A { private Set<B> myBList = new HashSet<B>(); private List<String> myStringList = new ArrayList<String>(); private long id; public A(){} public Set<B> getMyBList() { return myBList; } public void setMyBList(Set<B> myBList) { this.myBList = myBList; } public List<String> getMyStringList() { return […]

了解删除和删除greenDao中的关系

第一个问题是,greenDao什么时候为一个实体生成一个删除函数? 调用entity.delete()和session.getEntityDao.delete(entity)什么区别? 其次,如果我删除一个与父母有一个关系的孩子的父母实体,我必须自己去除孩子,不是吗? 其实没有自动依赖的“清理”完成,是吗?