【发布时间】:2020-12-03 17:34:56
【问题描述】:
我有一个OrderItemEntity,我想以 ManyToOne 关系将它与特定的OrderEntity 关联(许多 OrderItem 属于一个订单)。
我想用@JoinColumn 连接两个表的列,但不使用(Java-Object)OrderEntity。
原因:每当我想查询 OrderItemRepository(例如,列出特定订单的所有 OrderItem)时,我都必须提供一个 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));
}
【问题讨论】:
标签: java spring-boot hibernate jpa