作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个Subscription
类和Payment
类。当我执行以下操作时,它不会在连接表中创建记录。我应该使用中间类还是可以在没有它的情况下创建这样的记录? subscriptionRepository
是来自 Spring-Data 的 CrudRepository
。
@Transactional
public Subscription activate(@Valid Subscription subscription, @Valid Payment payment) {
Set<Payment> payments = subscription.getPayments();
if (payments == null)
payments = new HashSet<>();
payments.add(payment);
return subscriptionRepository.save(subscription);
}
类:
订阅:
@Entity
public class Subscription {
...
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
joinColumns = {@JoinColumn(name = "subscription_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "payment_id", referencedColumnName = "id", unique = true)}
)
@Getter @Setter
private Set<Payment> payments;
}
付款方式:
@Entity
public class Payment {
@Column
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@JsonIgnore
private Integer id;
@Column(nullable = false)
private PaymentType paymentType;
@Past
@Column(nullable = false)
private Date date;
public enum PaymentType {
MONEY,
PROMO_CODE,
TRIAL
}
}
最佳答案
你忘了在订阅中注入(inject)付款,你的存储库和 pojo 看起来还不错
if (payments == null) {
payments = new HashSet<>();
subscription.setPayments(payments);
}
关于java - Spring 数据 : How to write a record in join table for unidirectional one-to-may?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46143543/
我是一名优秀的程序员,十分优秀!