Articles of ORM

ActiveAndroid抽象类表

有谁知道是否可以在ActiveAndroid中为抽象类创建表。 例如,我可以有一个抽象类Animal,它有两个具体的类Dog和Cat。 我希望能够做到这样的事情: List animals = new Select().from(Animals.class).execute(); 这会导致’动物’包含所有已保存的猫和狗。 要么: Animal animal = new Select().from(Animals.class).where(“name = ?”, name).executeSingle(); “动物”可以是猫还是狗。 不幸的是,当我这样做时,我得到一个exception,因为没有为抽象类Animal创建表。 有谁知道如何使用ActiveAndroid进行此操作?

Android会议室:如何建立关系模型?

我刚刚开始与Room合作,虽然一切看起来都非常直观,但我目前还不清楚我究竟能如何处理关系。 由于SQLite是关系数据库,因此您可以指定对象之间的关系。 尽管大多数ORM库允许实体对象相互引用,但Room明确禁止这样做。 即使您不能使用直接关系,Room仍然允许您在实体之间定义外键约束。(来源: https : //developer.android.com/topic/libraries/architecture/room.html#no-object-references ) 你应该如何模拟多对多或一对多的关系? 这在实践中会是什么样子(示例DAO +实体)?

调用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对象类的内容。