我正在使用GAE Java开发一个Web应用程序。我以这种方式创建了实体Repair和LineRepair:
public static void createOrUpdateRiparazione(Key key, String plate,
String mechanicname, String type, String km, String description,
String date, String price, String qta) {
Transaction txn = Util.getDatastoreServiceInstance().beginTransaction();
try {
Entity repair = new Entity("Repair", key);
repair.setProperty("plate", plate);
repair.setProperty("date", date);
repair.setProperty("status", "Created");
repair.setProperty("km", km);
repair.setProperty("mechanic", mechanicname);
Util.getDatastoreServiceInstance().put(repair);
Entity lineRepair = new Entity("LineRepair", repair.getKey());
lineRepair.setProperty("type", type);
lineRepair.setProperty("description", description);
lineRepair.setProperty("price", price);
lineRepair.setProperty("qta", qta);
lineRepair.setProperty("repairID",
String.valueOf(repair.getKey().getId()));
Util.getDatastoreServiceInstance().put(lineRepair);
txn.commit();
} finally {
if (txn.isActive()) {
txn.rollback();
}
}
}
现在我不会在给定盘子和赔偿日期的情况下搜索汽车的维修。这是因为我想添加一个条件,如果在该日期已经有修复,那么添加一个LineRepair。我正在使用Code Lab Project的类util。 Here有实体汽车和用户。谢谢你的帮助
编辑:他们传递的密钥是Car的关键
答案 0 :(得分:0)
您需要具有修复板和修复日期的复合索引,然后使用函数查询修复实体以获取给定的板和修复日期值。如果获得查询响应,请使用getkey()查询结果并将其传递给函数以创建相应的linerepair实体。