我有一个StockItem类,其字段是Warehouse对象。我想运行一个Ebean查询来查找某个仓库的所有StockItem:
List<StockItem> result = StockItem.find()
.where()
.eq("warehouse", warehouse)
.findList();
但是,即使数据库中存在具有给定仓库的StockItem,结果也始终为0。我在Warehouse类中重写了equals()。
如果我查询所有StockItems的列表,然后测试仓库字段的相等性,我可以找到我正在寻找的仓库:
String resultString;
List<StockItem> result = StockItem.find().findList();
if(result.get(0).warehouse.equals(warehouse)) {
resultString = "success";
}
这是唯一的方法吗?
编辑:这是我在仓库中的等号()
@Override
public boolean equals(Object o) {
if(o instanceof Warehouse) {
Warehouse other = (Warehouse)o;
return name.equals(other.name) && address.equals(other.address);
} else {
return false;
}
}
答案 0 :(得分:0)
我不知道ebean
是什么,但你能尝试这样的事吗?
List<StockItem> result = StockItem.find()
.where()
.eq("warehouse.id", warehouse.getId())
.findList();