java hibernate fifo查询?
我正在使用java+hibernate创建一个会计应用程序。我有一张代表存货的桌子。购买物品和出售物品 日期、买卖、价格、数量 假设我有以下数据java hibernate fifo查询?,java,mysql,hibernate,Java,Mysql,Hibernate,我正在使用java+hibernate创建一个会计应用程序。我有一张代表存货的桌子。购买物品和出售物品 日期、买卖、价格、数量 假设我有以下数据 1 buy 2.00 1 2 sell 2.25 1 3 buy 3.00 2 4 sell 2.90 1 如何编写返回不匹配条目的查询(买入而不卖出或vic eversa)?以及如何获得匹配的?(假设列表更大,数量变化更大) 我的想法是取销售的sumproduct,然后从匹配数量的购买的sumproduct中减去,以表示库存损益,并将不匹配的条目作
1 buy 2.00 1
2 sell 2.25 1
3 buy 3.00 2
4 sell 2.90 1
如何编写返回不匹配条目的查询(买入而不卖出或vic eversa)?以及如何获得匹配的?(假设列表更大,数量变化更大)
我的想法是取销售的sumproduct,然后从匹配数量的购买的sumproduct中减去,以表示库存损益,并将不匹配的条目作为我仍然持有的库存
返回:
2.57-2.50=匹配订单的0.07(即库存损益表)
和(不在同一功能中)
退货:3.00,1(剩余库存数量和价格)
我可以通过一个查询来实现这一点,还是需要执行多个查询/操作
试图弄清楚我是否可以在查询行而不是for循环中获取功能
public void findMatched() {
Session session = sessionFactory.openSession();
Transaction tx = null;
StringBuilder obsbmsg;
try {
tx = session.beginTransaction();
**Query query = session.createQuery("FROM Inventory");**
List orders = query.list();
int i;
i=1;
obsbmsg= new StringBuilder();
boolean check = orders.iterator().hasNext();
if (check) {
for (Iterator iterator = orders.iterator(); iterator.hasNext();) {
Orderbook obo = (Orderbook) iterator.next();
// do stuff
}
} else {
System.out.println("No Entries in Table");
}
tx.commit();
} catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
如果您使用的是hibernate,那么您将有一个实体映射。你能给我们看一下相关的部分吗?实体映射正确。。我想知道是否/什么是最好的sql查询来完成我没有遵循的:您有一个正在查询的
库存
实体,然后将其转换为订单
?此外,您的订单日志需要有正在销售/购买的产品的参考。您可以通过对交易类型(买入/卖出)和产品/产品id进行分组,并对相应的条目求和。