Hibernate autoincrement ManyToOne 弱实体
Hibernate autoincrement ManyToOne weak entity
我想知道 autoincrement
我的 order rows
处于休眠状态的最佳方法是什么?从 1 开始并上升不是问题。但我希望我的 order row id
在添加到新的 order
时重置。
差不多是这样的:
OrderID OrderRowID
1 1
1 2
2 1
2 2
2 3
3 1
3 2
订单:
@Entity
@Table(name = "order")
public class Order {
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
订单行:
@Entity
@Table(name = "order_row")
public class OrderRow {
@Id
@Column(name = "id")
private Integer id;
@ManyToOne
@JoinColumn(name="album_id")
private Order order;
弱实体映射工作正常,但我现在必须手动设置订单 ID。
我认为我以糟糕的方式解决了它:我在我的 OrderRow DAO 中创建了一个获取下一个 ID 函数,它只是执行另一个 select 请求,如下所示:
public Integer getNextId(Order o) {
String q = "FROM OrderRow WHERE order_id = :orderId";
Query query = session.createQuery(q);
query.setParameter("orderId", o.getId());
List<OrderRows> orderRows = query.list();
int id = 1;
if (orderRows.size() > 0) {
id = orderRows.get(orderRows.size()-1).getId();
id++;
}
return id;
}
我希望我至少可以帮助某人解决这个问题。
我想知道 autoincrement
我的 order rows
处于休眠状态的最佳方法是什么?从 1 开始并上升不是问题。但我希望我的 order row id
在添加到新的 order
时重置。
差不多是这样的:
OrderID OrderRowID
1 1
1 2
2 1
2 2
2 3
3 1
3 2
订单:
@Entity
@Table(name = "order")
public class Order {
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
订单行:
@Entity
@Table(name = "order_row")
public class OrderRow {
@Id
@Column(name = "id")
private Integer id;
@ManyToOne
@JoinColumn(name="album_id")
private Order order;
弱实体映射工作正常,但我现在必须手动设置订单 ID。
我认为我以糟糕的方式解决了它:我在我的 OrderRow DAO 中创建了一个获取下一个 ID 函数,它只是执行另一个 select 请求,如下所示:
public Integer getNextId(Order o) {
String q = "FROM OrderRow WHERE order_id = :orderId";
Query query = session.createQuery(q);
query.setParameter("orderId", o.getId());
List<OrderRows> orderRows = query.list();
int id = 1;
if (orderRows.size() > 0) {
id = orderRows.get(orderRows.size()-1).getId();
id++;
}
return id;
}
我希望我至少可以帮助某人解决这个问题。