我声明了一个订单实体。它由日期、客户和LineItem对象列表组成。
行项目具有产品和数量的属性。我正试图模拟与JPA的这种关系。每个行项目都有ID似乎不正确,但我不确定如何在JPA中表达行项目和订单之间的关系:
@Entity
@Table(name = "ORDERS")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "cust_seq_gen")
@SequenceGenerator(name = "cust_seq_gen", sequenceName = "CUSTOMER_SEQUENCE", allocationSize = 5)
private int id;
@Temporal(DATE)
@Column(name = "DATE_PLACED")
private Date datePlaced;
@Enumerated(EnumType.STRING)
@Column(name = "STATUS")
private Status status;
@JoinTable(
name = "LINE_ITEM_JOIN",
joinColumns = @JoinColumn(name = "ORDER_ID"),
inverseJoinColumns = @JoinColumn(name = "LINE_ITEM_ID")
)
private List<LineItem> orderSegments;
@Column(name = "TOTAL", precision = 10, scale = 2)
private double total;
@ManyToOne
private Customer customer;
@Column(name = "NOTES")
private String notes;
}
LineItem类
@Entity
@Table(name = "LINE_ITEMS")
public class LineItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "line_item_seq_gen")
@SequenceGenerator(name = "line_item_seq_gen", sequenceName = "LINE_ITEM_SEQUENCE", allocationSize = 5)
private Order associatedOrder;
private Product product;
private int quantity;
...
}
我认为行项目的主键应该是产品id、数量和订单id的组合,尽管我知道我没有对此建模。
通过将行项目定义为嵌入集合,也可以忽略行项目的id。例如
public class Order {
@ElementCollection @OrderColumn
private List<LineItem> orderSegments = new ArrayList<>();
}
@Embeddable
public class LineItem {
@ManyToOne
private Product product;
private int quantity;
}
这样您将无法直接通过它们的id检索LineItem
。您需要order
来获取或添加LineItem
。
我有4张桌子: 库存(库存ID、可用数量) 一个客户可以有多个订单,而一个订单由多个orderDetails项目组成。我正在尝试将库存项目存储在由库存项目和数量整数组成的映射中。 当我尝试以这种方式持久化它时,第一个库存项目将以1的orderID添加到Order详细信息表中。但是下一个是使用2的orderID插入的(不存在)。 有什么帮助吗?
为了配置一个简单的JPA项目,我使用了Wildfly 8,数据源是在单机版中配置的。xml。 在Web项目中,我配置了持久性。像这样的xml文件 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 但是,当我添加br时。通用域名格式。卖应用程序。奥姆。通常,我在项目启动时出错,该错误表示存在hibernate问题org/hiber
我正在使用此API在WooCommerce中创建订单:https://github.com/kloon/WooCommerce-REST-API-Client-Library 添加订单时: 一切正常,秩序是在商业中建立的。 但是,当我想添加一个产品变体,其中包含关于变体的元数据时,我应该如何做呢? 我尝试了几件事,包括: 我想要实现的是,在获得订单时: 颜色信息已添加到行项目的元数据中(因此发送电
我有2个实体:Field和ViewOptions 省略与问题无关的字段和方法
问题内容: 我正在寻找一种确定范围的方法 。 Golang规范指出以下内容: 未指定地图的迭代顺序,并且不能保证每次迭代之间都相同。如果在迭代过程中删除尚未到达的映射条目,则不会生成相应的迭代值。如果映射条目是在迭代过程中创建的,则该条目可能在迭代过程中产生或可以被跳过。对于创建的每个条目以及从一个迭代到下一个迭代,选择可能有所不同。如果映射为nil,则迭代次数为0。 我在StackOverflo