【发布时间】:2019-07-05 12:59:15
【问题描述】:
我有一个旧实体和一个新实体,用于在不修改的情况下扩展旧实体。
@Entity
public class OldEntity extends AbstractAuditingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@Column(name = "activation_date")
@NotNull
private Instant activationDate;
@OneToOne(mappedBy = "oldentity", fetch = FetchType.LAZY)
private NewEntity newEntity;
// getters and setters
}
@Entity
public class NewEntity extends AbstractAuditingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@OneToOne(fetch = FetchType.LAZY)
private OldEntity oldEntity;
// setters and getters
}
当我在 newEntity 表中插入一行时,没有问题。但是,如果我在调用 find 时尝试将表中的 2 行插入到 newEntity 中,我会得到正确的休眠异常“找到了多个具有给定标识符的行”。 是否可以避免使用标准休眠注释进行多次插入?
编辑插入新记录我使用这样的简单存储库
@Repository
public interface NewEntityRepository extends JpaRepository<NewRepository, Long> {
}
在服务中我打电话给
newEntityRepository.save()
【问题讨论】:
标签: hibernate jpa annotations