为了账号安全,请及时绑定邮箱和手机立即绑定

我厌倦了用 JpaRepository 做点什么但是找不到行 findById ,

我厌倦了用 JpaRepository 做点什么但是找不到行 findById ,

动漫人物 2023-06-21 16:39:35
我试图通过 idfindById方法获取行,但它没有成功,无法在 DB 中找到行。当我findAll之前打电话时findById工作正常。我使用 PostgreSQL。public void updateOffer(OrderOfferDTO orderOfferDTO) {  //        List<OrderOfferEntity> all = orderOfferRepository.findAll();        OrderOfferEntity orderOfferEntity = orderOfferRepository.findById(orderOfferDTO.getId()).orElse(null);        assert(orderOfferEntity != null);        if (!isCanOfferUpdate(orderOfferEntity)) return;        orderOfferEntity.setNumberOffer(orderOfferEntity.getNumberOffer() + 1);        orderOfferEntity.setOfferDelivery(orderOfferDTO.getOfferDelivery());        orderOfferEntity.setOfferPickup(orderOfferDTO.getOfferPickup());        orderOfferRepository.save(orderOfferEntity);    }资料库@Repositorypublic interface OrderOfferRepository extends JpaRepository<OrderOfferEntity, Long> {    OrderOfferEntity findByUserEntityAndOrderEntity(UserEntity userEntity, OrderEntity orderEntity);    List<OrderOfferEntity> findByUserEntityNotAndOrderEntity(UserEntity supplierEntity, OrderEntity orderEntity);    List<OrderOfferEntity> findByOrderEntity(OrderEntity orderEntity);    List<OrderOfferEntity> findByUserEntity(UserEntity userEntity);}实体@Entity@Table(name = "AUCTION_SUPPLIER")@Datapublic class OrderOfferEntity {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    @Column(name = "NUMBER_OFFER")    private Integer numberOffer;    @Column(name = "OFFER_PICKUP")    private Integer offerPickup;    @Column(name = "OFFER_DELIVERY")    private Integer offerDelivery;    @Column(name = "IS_ACCEPTED")    private Boolean isAccepted;    @ManyToOne(optional = false)    @JoinColumn(name = "DELIVERY_PROGRESS_ID")    private DeliveryProgressEntity deliveryProgressEntity;    @ManyToOne    @JoinColumn(name = "SUPPLIER_ID", nullable = false)    private UserEntity userEntity;    @ManyToOne    @JoinColumn(name = "CUSTOMER_ORDER_ID", nullable = false)    private OrderEntity orderEntity;    @ManyToOne    @JoinColumn(name = "FACTORY_ID", nullable = false)}
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

您所有的 ManyToOne 关系都是非可选的或非空的。

所以 Hibernate 生成 INNER JOINS。您必须确保您的数据遵循此规则。

如果您定义非可选或非空关系,您还应该对数据库表中的外键设置 NOT NULL 约束。


查看完整回答
反对 回复 2023-06-21
  • 1 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信