我在 EclipseLink 中使用 JSF、JPA 和 MySQL 已经 5 年了。我发现我想转移到 Object db,因为它非常快,特别是对于非常大的数据集。在迁移过程中,我发现了这个错误。在带有 EclipseLink 的 JPA 中,我将对象作为参数传递。但是在 Object DB 中,我需要传递对象的 id 才能得到结果。我必须在几个地方改变它。谁能帮助克服这个问题。
这段代码在 EclipseLink 和 MySQL 上运行良好。这里我将对象“salesRep”作为参数传递。
String j = "select b from "
+ " Bill b "
+ " where b.billCategory=:cat "
+ " and b.billType=:type "
+ " and b.salesRep=:rep ";
Map m = new HashMap();
m.put("cat", BillCategory.Loading);
m.put("type", BillType.Billed_Bill);
m.put("rep", getWebUserController().getLoggedUser());
我必须像这样更改才能使其在 ObjectDB 中工作。这里我必须将对象“salesRep”的 id(长类型)作为参数传递。
String j = "select b from "
+ " Bill b "
+ " where b.billCategory=:cat "
+ " and b.billType=:type "
+ " and b.salesRep.id=:rep ";
Map m = new HashMap();
m.put("cat", BillCategory.Loading);
m.put("type", BillType.Billed_Bill);
m.put("rep", getWebUserController().getLoggedUser().getId());