我有两张桌子:Customer(家长)和Orders(子元素).两者都由customerId映射(customer\u id:unique key,在父级和子级中).
在一些Impl类的代码中,我在实体中设置字段后保存数据,
...
String status = someObject.getStatus();
customer.setLastPurchageStatus(status);
order.setStatus(status);
....
并使用内置的"save
"将其保存为:
try {
LOGGER.info("Customer status:{}, Order statu:{}", customer.getLastPurchageStatus(), customer.getOrder().getStatus());
customerRepo.save(customer);
} catch(Exception e) {
LOGGER.info(e);
}
上述记录器.信息行记录了相同的状态,但当5分钟后在表中看到时,客户表使用的是旧值,而订单表使用的是更正后的值.这种行为只发生在5-6%的事务中.我在日志(log)中没有看到任何异常.
Customer
@TypeDefs({ @TypeDef(name = "json", typeClass = JsonStringType.class), })
@Entity
@Table(name = "customer")
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Customer implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = -395898276179285945L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "customer_seq")
private long customerSeq;
@Column(name = "customer_id")
private String customerId;
@Column(name = "last_purchase_status")
private String lastPurchageStatus;
@JsonManagedReference
@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, mappedBy = "Customer")
private Set<Order> order;
Order
@Entity
@Table(name = "order")
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Order implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = -4250363507869746908L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "order_seq")
private String orderSeq;
@Column(name = "order_id")
private String orderId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "customer_seq", referencedColumnName = "customer_seq")
@JsonBackReference
private Customer customer;
@Column(name = "customer_id")
private String customerId;
@Column(name = "status")
private String status;
.......
...other getters/setters
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "customer_seq", referencedColumnName = "customer_seq")
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
.....
有什么帮助吗??