有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用id作为引用使用spring数据保存嵌套对象

假设您正在创建一个类型为User的新实体,用户拥有嵌套对象Billing,假设您知道存在一个ID为1的Billing,是否有一种简单的方法可以在新的User和现有的Billing之间形成关联

假设获取要设置给用户的Billing对象是一项昂贵的操作,因此获取整个计费对象并将其设置给用户的解决方案不是一个选项

我的问题是,是否有一种简单的方法可以使用spring数据保存实体与其嵌套副本之间的关系

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int userId;

    private String name;

    @ManyToOne
    @JoinColumn(name = "billing_id")
    private Billing userBill;

    // constructor
    // getters and setters

}

例如,在sudo代码中:

User bob = new User();
bob.billingId.id = 1;

userRepository.save(bob);

共 (1) 个答案

  1. # 1 楼答案

    当然

    JpaRepository.getOne(id)(与CrudRepository.findById相反)将在内部调用EntityManager.getReference(entityType, id),这是指定用于处理此确切用例的方法(获取对实体的引用,而不加载其关联状态)

    要回答您的问题,您需要的是:customer.setBilling(billingRepository.getOne(billingId))