我应该如何实现事务数据库EJB 3.0

时间:2011-09-22 13:33:31

标签: java database transactions ejb

在CustomerTransactions实体中,我有以下字段来记录客户购买的内容:

@ManyToMany
private List<Item> listOfItemsBought;

当我更多地考虑这个领域时,它可能无法运作,因为允许商家更改商品的信息(例如价格,折扣等......)。因此,该字段将无法记录交易发生时客户实际购买的内容。

目前,我只能想到两种方法让它发挥作用。

  1. 我会将事务详细信息记录到String字段中。如果我稍后需要提取有关交易的一些信息,我觉得这种方式会很混乱。
  2. 每当商家更改商品的信息时,我都不会直接更新该商品的字段。相反,我将创建另一个包含所有新信息的新项目,并保持旧项目不变。我觉得这种方式更好,因为我可以在以后轻松提取有关交易的信息。但是,不好的一面是我的Item表可能包含很多行。
  3. 如果有人能就如何解决这个问题给我一个建议,我将非常感激。

1 个答案:

答案 0 :(得分:1)

我会尝试第三种选择。

public class Item {
    private String sku;

    private double currentPrice;
}

public class Customer {
    private String name;

    private List<Transaction> transactions;
}

public class Transaction {
    private Item item;

    private Customer customer;

    private double pricePerItem;

    private double quantity;

    private String discountCode;
}

我会让你去研究JPA映射。