我正在尝试开发一个小型电子商务项目。我有一个篮子和篮子项目实体。我只是想当我为客户保存购物篮时,我想把购物篮项目保存在数据库中。我认为我不应该为篮子项目创建存储库。我应该能够保存篮子项目,同时使用篮子存储库保存篮子。
public class Basket extends BaseModel {
@Column(nullable = false)
private BigDecimal price;
private BigDecimal discountPrice = BigDecimal.ZERO;
private BigDecimal taxPrice = BigDecimal.ZERO;
private BigDecimal shippingPrice = BigDecimal.ZERO;
@Column(nullable = false)
private BigDecimal totalPrice;
@OneToMany(mappedBy = "basket", cascade = CascadeType.PERSIST)
private Set<BasketItem> items = new HashSet<>();
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "customer_id", nullable = false)
private Customer customer;
}
public class BasketItem extends BaseModel {
@ManyToOne(optional = false)
private Basket basket;
@ManyToOne(optional = false)
private Product product;
@Column(nullable = false)
private Long quantity;
@Column(nullable = false)
private BigDecimal price = BigDecimal.ZERO;
private BigDecimal discountPrice = BigDecimal.ZERO;
private BigDecimal taxPrice = BigDecimal.ZERO;
private BigDecimal shippingPrice = BigDecimal.ZERO;
}
在这里,我试图通过篮子服务获得一个篮子项目,并将其设置为篮子实体并保存它。
public class BasketServiceImpl implements BasketService{
private final CustomerRepository customerRepository;
private final BasketRepository basketRepository;
private final BasketItemConverter basketItemConverter;
@Override
public void addBasketItemToBasket(Long customerId, AddBasketItemDTO addBasketItemDTO) {
//Find customer
Customer customer = customerRepository.findById(customerId).orElseThrow(
() -> new BusinessServiceOperationException.CustomerNotFoundException("Customer not found")
);
//Convert AddBasketItemDto to BasketItem
BasketItem basketItem = basketItemConverter.toBasketItem(addBasketItemDTO);
Set<BasketItem> basketItemsList = new HashSet<BasketItem>();
Basket basket = new Basket();
basketItemsList.add(basketItem);
basket.setItems(basketItemsList);
basket.setCustomer(customer);
basket.setPrice(BigDecimal.ZERO);
basket.setTotalPrice(BigDecimal.ZERO);
basketRepository.save(basket);
}
}
我有什么问题?我有个例外。
{
"errorMessage": "detached entity passed to persist: org.patikadev.orderexample.model.BasketItem; nested exception is org.hibernate.PersistentObjectException: detached entity passed to persist: org.patikadev.orderexample.model.BasketItem"
}
是的,如果篮子有适当的持久链接,你不需要篮子项目存储库。但是你必须先保存项目,然后将其添加到篮子中,并在最后保存篮子。
我正在从经典Spring 4.3.2 Hibernate(HQL)迁移到Spring Boot 1.4.1 Hibernate(JPA)HikariCP连接池,并且在批量插入方面遇到问题。我需要保存1000到527 000个元素的大列表。 当我只保存一个实体的批次,没有任何依赖项(例如:类的5000个元素)时,一切都很好。 但是,如果我尝试同时保存子实体和父实体(只需为其设置),我会得到例外: 但
我是Hibernate的新手,并要求使用具有这些列的表的数据库 表:TBL _ product//库存项目列表< br >列:< br > key _ product < br > key _ category < br > fld _ product _ name < br > fld _ Inventory _ qty < br > fld _ unit _ price < br > fld
我在使用JPA时遇到了一些困难。我没有得到任何异常,但我不能保存任何东西到数据库。我从Hibernate到Jpa,在那里一切都工作得很好。下面是我的文件 Application.Properties: 存储库: 服务: 我在提交表单时得到了200的响应,但在数据库中找不到数据
我使用的是Spring数据jpa。将子实体添加到父实体后,我将父实体保存到数据库。我想得到孩子的身份证,但我发现我得到的是空的。 我在getId()方法中添加了@GeneratedValue(Strategy=GenerationType.IDENTITY),但它不起作用。 以下是模型: 父实体已经在数据库中,所以我直接找到它,父存储库entends Jpa列举 这里是我的测试代码: 我得到的输出
我有一个使用JPA的Spring Boot应用程序,它有两个数据源,一个用于DB2,一个用于SQL Server。 当我尝试将实体保存到SQL Server时,不会抛出任何错误,但该实体不会持久化到数据库。我看不到日志中正在生成插入。 提前感谢 下面是我尝试保存实体所执行的代码@组成部分 下面是sql Server配置。 这是SQL Server存储库 公共接口BeercupMessageLogR
问题内容: 提交表单时出现此错误: org.hibernate.PersistentObjectException:分离的实体传递给持久化:com.project.pmet.model.Account; 嵌套异常是javax.persistence.PersistenceException:org.hibernate.PersistentObjectException:传递给持久对象的分离实体:c