【发布时间】:2023-03-10 12:49:01
【问题描述】:
晚上好,
我正在尝试更新现有记录的连接表属性。我有两个模型,一个叫Records,另一个叫Shoppingcarts。它们通过名为records_shoppingcarts 的连接表连接。我在连接表中添加了一个名为record_amount 的关系属性,它应该保存连接表中每条记录的数量。
目前,每当将一个项目添加到购物车时,只会添加一个项目。然后,用户可以在他们的结账视图中修改购物车中的商品数量。我通过查询连接表records_shoppingcarts 以获取具有相应record_id 的条目并将列record_amount 更新为购物车中的新记录数量来处理此问题。这看起来有点链接:
List<RecordsShoppingcarts> associations = RecordsShoppingcarts.where("shoppingcart_id = ?", s.get("id"));
//update the number of records in the join table
for(RecordsShoppingcarts rs : associations) {
if((int)rs.getInteger("record_id") == (int)rec.getInteger("id")) {
rs.delete(); //cleanup
rs.set("record_amount", amount);
rs.saveIt();
}
}
}
不幸的是,每当saveIt() 被调用时;该条目未在数据库中更新,但使用相同的shoppingcart_id、recordId 和更新的金额创建了一个新条目。我可能在这里遗漏了一些东西,因为我无法想象手动更新连接表是有意的。不幸的是,我找不到任何关于更新连接表中的关系属性的信息。这甚至是由 ActiveJdbc 提供的吗?
任何帮助将不胜感激。 最良好的祝愿,derelektrischemoench
【问题讨论】:
标签: java activejdbc