Articles of ORM

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)什么区别? 其次,如果我删除一个与父母有一个关系的孩子的父母实体,我必须自己去除孩子,不是吗? 其实没有自动依赖的“清理”完成,是吗?

在greenDao中添加索引列的正确方法?

我正在greenDAO中构build一个数据模型。 它是使用核心数据的iOS应用程序的端口。 在iOS中,我们使用索引(索引?)来提高20列(属性)表中的查询性能,其中经常查询5列。 我知道这会导致额外的存储空间,并提供较慢的表写入。 在文档挖掘中,我遇到了Entity中的addIndex(Index index)方法和Property.PropertyBuilder中的index()方法。 哪一个是正确的方式来添加一个实体的索引? Entity entity = schema.addEntity("entity"); entity.setSuperclass("SuperClass"); entity.addIdProperty(); entity.addIntProperty("property").index(); 要么 Entity entity = schema.addEntity("entity"); entity.setSuperclass("SuperClass"); entity.addIdProperty(); Property property = entity.addIntProperty("property").getProperty(); entity.setIndex(property); 还是他们都做同样的事情?

与内容提供商一起使用Green DAO

我打算在我的项目中使用GreenDAO 。 我已经通过创build一个testing项目来testing它。 但是,我有几个要求,我需要履行。 我的应用程序的数据库将被encryption。 为此,我们计划使用SQLCipher 。 我发现这个链接 。 我正在研究它,但有兴趣知道原始的GreenDAO项目中是否有任何可用的东西。 由于我的应用程序将数据同步到服务器/从服务器,我将使用SyncAdapter,因为我不想做所有已经由Android框架完成的自我重组。 但是它需要Content Provider来处理。 那么,我怎样才能使用GreenDAO和Content Provider 。 更新2 我的项目有七个实体。 我用实体上的addContentProvider() 。 生成七个不同的内容提供者。 有没有办法让一个内容提供商中的所有sqlite表?

哪个java ORM适合android操作系统并且支持懒表?

我想select一个最好的和适合的Android的ORM库在我的应用程序中使用。 我知道GreenADO和ORMLite,但不是很多。 你能比较一下它们,并提到它们的优点/缺点吗? 还要告诉哪一个支持懒表? 谢谢

在ORMLite中保存HashMap

我在我的Android应用程序中使用ORMLite。 我需要坚持这个类,它有一个HashMap。 坚持它的好方法是什么? 这是我第一次尝试坚持一个HashMap,也是第一次与ORMLite所以任何build议将不胜感激! * 编辑 *如果这有什么不同,那么Exercise类就是一个String(它也可以作为数据库中的id),Set类有一个int id(也是数据库中的id),int weight和int reps。 @DatabaseTable public class Workout { @DatabaseField(generatedId = true) int id; @DatabaseField(canBeNull = false) Date created; /* * The hashmap needs to be persisted somehow */ HashMap<Exercise, ArrayList<Set>> workoutMap; public Workout() { } public Workout(HashMap<Exercise, ArrayList<Set>> workoutMap, Date created){ this.workoutMap = workoutMap; this.created = created; } […]

如何使用OrmLite连接到受密码保护的SQLite数据库?

我通过以下代码从资产中复制数据库: public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private static final String DATABASE_NAME = "database.db"; private static final String DATABASE_PATH = "/data/data/"+BuildConfig.APPLICATION_ID+"/databases/"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); copyFromAssets(context); } private void copyFromAssets(Context context) { boolean dbexist = checkdatabase(); if (!dbexist) { File dir = new File(DATABASE_PATH); dir.mkdirs(); InputStream myinput = context.getAssets().open(DATABASE_NAME); String outfilename […]