- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下代码来定义两个通过一对多关系相关的实体。
private static void addLuckyDrawClick(Schema schema) {
Entity luckyDrawClick = schema.addEntity("LuckyDrawClick");
luckyDrawClick.addIdProperty();
luckyDrawClick.addDateProperty("clickDate").notNull();
luckyDrawClick.addStringProperty("user").notNull();
Property userId = luckyDrawClick.addLongProperty("userId").getProperty();
user.addToMany(luckyDrawClick, userId);
Main.luckyDrawClick = luckyDrawClick;
}
private static void addWeeklyClickList(Schema schema) {
Entity weeklyClickList = schema.addEntity("WeeklyClickList");
weeklyClickList.addIdProperty();
Property clickOne = weeklyClickList.addLongProperty("clickOneId").getProperty();
weeklyClickList.addToOne(luckyDrawClick, clickOne, "clickOne");
Property clickTwo = weeklyClickList.addLongProperty("clickTwoId").getProperty();
weeklyClickList.addToOne(luckyDrawClick, clickTwo, "clickTwo");
Property clickThree = weeklyClickList.addLongProperty("clickThreeId").getProperty();
weeklyClickList.addToOne(luckyDrawClick, clickThree, "clickThree");
Property clickFour = weeklyClickList.addLongProperty("clickFourId").getProperty();
weeklyClickList.addToOne(luckyDrawClick, clickFour, "clickFour");
Property clickFive = weeklyClickList.addLongProperty("clickFiveId").getProperty();
weeklyClickList.addToOne(luckyDrawClick, clickFive, "clickFive");
weeklyClickList.addBooleanProperty("latest");
Main.weeklyClickList = weeklyClickList;
}
我使用以下代码来持久化实体。
weeklyClickListDao = daoSession.getWeeklyClickListDao();
User user = new User();
user.setUsername("usr");
user.setGender(false);
user.setName("Usr");
user.setLocation("loc");
user.setPassword("p");
user.setDateOfBirth(new Date());
user.setDeviceId("id");
user.setContactNumber("contact");
userDao.insert(user);
Log.d("size", "" + userDao.loadAll().size());
currentUser = userDao.loadAll().get(0);
WeeklyClickList wcl = new WeeklyClickList();
wcl.setLatest(true);
LuckyDrawClick ldc1 = new LuckyDrawClick();
GregorianCalendar date1 = new GregorianCalendar();
date1.set(Calendar.DAY_OF_MONTH, date1.get(Calendar.DAY_OF_MONTH) - 4);
date1.set(Calendar.HOUR_OF_DAY, 0);
date1.set(Calendar.MINUTE, 0);
date1.set(Calendar.SECOND, 0);
date1.set(Calendar.MILLISECOND, 0);
ldc1.setClickDate(date1.getTime());
ldc1.setUser(currentUser.getUsername());
wcl.setClickOne(ldc1);
wcl.setClickOneId(ldc1.getId());
luckyDrawClickDao.insert(ldc1);
LuckyDrawClick ldc2 = new LuckyDrawClick();
GregorianCalendar date2 = new GregorianCalendar();
date2.set(Calendar.DAY_OF_MONTH, date1.get(Calendar.DAY_OF_MONTH) - 3);
date2.set(Calendar.HOUR_OF_DAY, 0);
date2.set(Calendar.MINUTE, 0);
date2.set(Calendar.SECOND, 0);
date2.set(Calendar.MILLISECOND, 0);
ldc2.setClickDate(date2.getTime());
ldc2.setUser(currentUser.getUsername());
wcl.setClickTwo(ldc2);
wcl.setClickTwoId(ldc2.getId());
luckyDrawClickDao.insert(ldc2);
LuckyDrawClick ldc3 = new LuckyDrawClick();
GregorianCalendar date3 = new GregorianCalendar();
date3.set(Calendar.DAY_OF_MONTH, date1.get(Calendar.DAY_OF_MONTH) - 2);
date3.set(Calendar.HOUR_OF_DAY, 0);
date3.set(Calendar.MINUTE, 0);
date3.set(Calendar.SECOND, 0);
date3.set(Calendar.MILLISECOND, 0);
ldc3.setClickDate(date3.getTime());
ldc3.setUser(currentUser.getUsername());
wcl.setClickThree(ldc3);
wcl.setClickThreeId(ldc3.getId());
luckyDrawClickDao.insert(ldc3);
LuckyDrawClick ldc4 = new LuckyDrawClick();
GregorianCalendar date4 = new GregorianCalendar();
date4.set(Calendar.DAY_OF_MONTH, date1.get(Calendar.DAY_OF_MONTH) - 1);
date4.set(Calendar.HOUR_OF_DAY, 0);
date4.set(Calendar.MINUTE, 0);
date4.set(Calendar.SECOND, 0);
date4.set(Calendar.MILLISECOND, 0);
ldc4.setClickDate(date4.getTime());
ldc4.setUser(currentUser.getUsername());
wcl.setClickFour(ldc4);
wcl.setClickFourId(ldc4.getId());
luckyDrawClickDao.insert(ldc4);
weeklyClickListDao.insert(wcl);
但外键引用不包含在记录中。
我做错了什么吗?
最佳答案
在将 ldc 插入数据库之前,您正在 wcl 中设置 ClickFourId(作为示例),当您执行以下操作时:
wcl.setClickFourId(ldc4.getId());
ldc4.getId() 将返回 null,当您插入 wcl 时,它没有指向 ldc4 的外键。
试试这个方法:
luckyDrawClickDao.insert(ldc4);
wcl.setClickFourId(ldc4.getId());
关于java - GreenDao 一对多外键引用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22044047/
问题是:GreenDao什么时候从session缓存中更新sql数据库? 假设我正在从数据库中查询现有实体,而不是更改其中一个属性(字段)。无论如何,这些更改都是在不指导 sql 数据库的情况下执行的
我有一个现有的 sqlite db 架构(大约 30 个表),我必须将其导入到我的 Android 项目中。 我想在我的代码中使用 greenDao,但如果我已经创建了 sqlite db,我不知道这
如何为一个实体创建多个表? 最佳答案 在 greenDAO 中是不可能的,目前也没有计划支持此功能。你能解释一下你为什么要这样做以及这应该如何工作吗?也许有更好的方法... 关于greendao -
我在我的 Android 项目中使用 GreenDAO。 我已经实现了一个增量更改表,因此我可以跟踪对实体的各个更新。我想在一个“updateTask”方法中跟踪这些更改,因此无论从何处调用它,都可以
我有以下问题: 是否可以使用GreenDao 进行跨平台应用?例如,在桌面和 Android 上运行的应用程序。 有哪些替代方案? 在GreenDao中MasterDao的包是什么? 谁能举个真实的数
我正在使用 greendao 3.2 并制作实体和数据库。它一切正常。 但是在创建必须自动递增的 Id 属性时我遇到了麻烦。我知道如何在 SQL 中做到这一点,但使用 greendao 它给了我更多的
我只需要使用 GreenDao 返回一列。这是 SQL 查询: SELECT NAME FROM PERSON 如何使用 GreenDao 做到这一点? 最佳答案 如果您想执行原始查询(DaoSess
使用 GreenDao,我以某种方式设法将我的数据库置于一个没有 key 的实体的状态。 我的问题是如何清除/删除该实体?我在 AbstractDao 中没有看到可以让我删除另一个列名的函数。 最佳答
我想使用 GreenDao 构建以下查询。 select * from luckydrawclick e where e.user = ? and (e.id = ? or e.id = ? or e
如何在不使用字符串操作的 toLowercase/toUppercase 的情况下使字符串比较不区分大小写 QueryBuilder qb = mPropertyModelDao.queryBuild
我使用以下代码来定义两个通过一对多关系相关的实体。 private static void addLuckyDrawClick(Schema schema) { Entity luckyDra
我有一个具有 3 个一对多关系的实体 private List Data1; private List Data2; private List Data3; 我想在手动创建的列表中总结这些数据(Tot
我已经阅读了 greendao 文档,但没有找到任何关于在由于某种原因实体更新失败时发出警告的方法的线索...... update(T entity) 既不返回任何东西也不抛出任何错误... 那么有什
在我的应用程序中,我有一个 Entity/table,它有一个 Name 字段(在其他几个字段中)。我想要在该表中找到的所有唯一名称的字符串列表。 现在我唯一能想到的就是将所有结果加载到实体对象列表中
我想知道如何获取我的数据库(当然是 *.sqlite 文件)大小(以字节为单位)? 我目前的做法(行不通)是: 新文件(DataManager.getInstance().db.getPath()).
我一直在寻找解决我的问题的方法,但没有成功。 我有一个应用程序,在该应用程序中,我从不同的服务接收数据库中特定实体的信息,因此我使用 greenDAOs insertOrReplace 方法,因此只要
我正在使用 green dao,我已经到了支持多语言的地步,我想为每种语言使用不同的数据库。 到目前为止,我一直在使用 green dao 创建我的数据库。现在我想在 assets 中有多个数据库,只
我有一个具有 500 个属性的实体,每个属性都有人类可修改的名称,例如“serialNumber”,但它的 column_name 是“E_A_XNF”。 现在我有一个表单,它为我提供了一个以列名作为
我是 greenDao(第 3 版)的新手。我有一个带有状态字段的表。我有一个 ID 列表。我想使用 ID 将所有状态更新为“Activity ”。我未能获得此更新的任何此类方法。谁能帮我解决这个问题
我正在尝试使用 greendao 创建两个相同结构的表。所以基本上,我正在做以下事情来实现。创建 Position.class: public class Position { protect
我是一名优秀的程序员,十分优秀!