我有一个 OrderItemEntity
我想和一个特定的 OrderEntity
在多订单关系中(多个订单项属于一个订单)。
我想用@joincolumn连接两个表的列,但不使用(java对象)orderentity。
原因:每当我想查询orderitemrepository(例如,列出特定订单的所有orderitems)时,我必须提供一个orderentity( findByOrderId(OrderEntity orderEntity)
),但我想提供一个简单的orderid。有没有更好的方法来实现这一点?
我的orderitementity类:
@Entity
@Data
@AllArgsConstructor
public class OrderItemEntity {
@Id
private String orderItemId;
private int quantity;
private double subtotal;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "orderId")
private OrderEntity orderId;
public OrderItemEntity() {
}
}
存储库接口:
@Repository
public interface OrderItemEntityRepository extends CrudRepository<OrderItemEntity, String>{
ArrayList<OrderItem> findByOrderId(OrderEntity orderEntity);
}
方法来查询存储库
@Override
public ArrayList<OrderItem> getOrderItems(String orderId) {
return orderItemEntityRepository.findByOrderId(new OrderEntity(orderId, null, null));
}
1条答案
按热度按时间rmbxnbpk1#
首先将属性更改为
private OrderEntity order;
并将存储库中的方法更改为ArrayList<OrderItem> findByOrder_Id(Long orderEntityId);
,然后您只需传递订单实体id即可获得实体。