【问题标题】:Java Spring Data App doesn't save sub-objectsJava Spring Data App 不保存子对象
【发布时间】:2021-04-22 10:11:21
【问题描述】:

我正在尝试构建构建服务,该服务使用子对象保存对象,但出现错误。结果对象数据字段保存,但子对象不保存。

我有下一个对象。主对象是订单,子对象是伙伴:

@Getter
@Setter
@Entity
@Table(name = "orders")
public class Order {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "order_id")
    private int orderId;

    @OneToMany(mappedBy = "order", fetch = FetchType.EAGER,
            cascade = CascadeType.ALL)
    private Set<Partner> partners;
}

@Getter
@Setter
@Entity
@Table(name = "partners")
public class Partner implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "partner_id")
    private int id;

    @ManyToOne(fetch = FetchType.EAGER, optional = false)
    @JoinColumn(name = "order_id", nullable = false)
    private Order order;
}

我使用来自 Spring Jpa Repository 的标准嵌入式方法“保存”:

@Repository
public interface OrdersRepository extends JpaRepository<Order, Integer> {

}

和调用此存储库的服务:

@服务 公共类 OrdersServiceImpl 实现 OrdersService {

@Autowired
private OrdersRepository repository;

@Override
public Order save(Order order) {
    return repository.save(order);
}

}

有人知道为什么没有保存合作伙伴吗?

非常感谢!

【问题讨论】:

    标签: java spring spring-data-jpa spring-data


    【解决方案1】:

    因为关系所有者是Partner,所以需要先保存订单。或者您可以将 cascade = CascadeType.PERSIST 放在私人订单上;

    【讨论】:

    • 这有帮助,但是子对象没有父 ID..
    • 我已经在这里发布了整个结构:stackoverflow.com/questions/67230610/…你能看看有什么问题吗?
    • 您应该为每个合作伙伴设置顺序
    猜你喜欢
    • 2021-05-31
    • 2012-05-06
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 2014-08-15
    • 2018-10-26
    • 2020-01-26
    相关资源
    最近更新 更多