public void doWork(Session session) throws Exception { XorShiftRandom rng = new XorShiftRandom(seeder.nextInt()); Order order = new Order(); session.persist(order); for (int i = 0; i < 10; i++) { int productId = rng.nextInt() & 1023; Product product = (Product) session.get(Product.class, productId); OrderLine orderLine = new OrderLine(); orderLine.setOrder(order); orderLine.setProduct(product); session.persist(orderLine); order.getOrderLines().add(orderLine); } }
public void doWork(Session session) throws Exception { @SuppressWarnings("unchecked") List<Order> chargedOrders = session.createCriteria(Order.class).add(Restrictions.eq("state", 2)).list(); for (Order order : chargedOrders) { order.setState(3); for (OrderLine orderLine : order.getOrderLines()) { Product product = orderLine.getProduct(); product.setQuantity(product.getQuantity() - 1); session.update(product); } session.update(order); } }
public void doWork(Session session) throws Exception { @SuppressWarnings("unchecked") List<Order> pendingOrders = session.createCriteria(Order.class).add(Restrictions.eq("state", 1)).list(); for (Order order : pendingOrders) { order.setState(2); int charge = 0; for (OrderLine orderLine : order.getOrderLines()) { charge += orderLine.getProduct().getPrice(); } order.setCharge(charge); session.update(order); } }