我正在尝试使用persist来插入数据。第一个em.persist()
和第二个em.persist()
运行得很好,但是第三个em.persist()
不起作用。
我认为第二个em
和第三个em
共享同一个QuotaProductInfo
VO,所以它不工作。我不确定我的猜测是正确的。
无论如何,我如何才能使第二个和第三个em.persist()
都工作。
QuotaInfo quotaInfo = new QuotaInfo();
quotaInfo.setProject(project);
quotaInfo.setSchool(school);
quotaInfo.setRegion(region);
quotaInfo.setSalesMan(salesMan);
quotaInfo.setStat(stat);
quotaInfo.setRegDate(LocalDateTime.now());
em.persist(quotaInfo); //here em.persist() 1
Long maxSeq_ = (Long) em.createQuery("select count(m) from QuotaInfo AS m").getSingleResult();
int maxSeq = maxSeq_.intValue() + 1;
QuotaProductInfo quotaPInfo_1 = new QuotaProductInfo();
quotaPInfo_1.setName(product1);
quotaPInfo_1.setQnt(qnt1);
quotaPInfo_1.setPriceUnit(0);
quotaPInfo_1.setQuotaSeq(maxSeq);
em.persist(quotaPInfo_1); //here em.persist() 2
if(product2!=null) {
QuotaProductInfo quotaPInfo_2 = new QuotaProductInfo();
quotaPInfo_2.setName(product2);
qnt2 = Integer.parseInt(qnt2_);
quotaPInfo_2.setQnt(qnt2);
quotaPInfo_2.setPriceUnit(0);
quotaPInfo_2.setQuotaSeq(maxSeq);
em.persist(quotaPInfo_2); //here em.persist() 3
}
1条答案
按热度按时间c3frrgcw1#
你可以通过改变你的实体vo类来解决这个问题。
只需添加@GeneratedValue注解即可解决此问题。