Java Spring JPA在保存多个实体时插入到错误列
我遇到了一个问题,我一次保存了一个实体列表,有时有些行的值被写入了错误的列 基本上,我有一个Movie实体,它扩展了Show(用Java Spring JPA在保存多个实体时插入到错误列,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我遇到了一个问题,我一次保存了一个实体列表,有时有些行的值被写入了错误的列 基本上,我有一个Movie实体,它扩展了Show(用@MappedSuperclass注释),它扩展了可跟踪性,也用@MappedSuperclass注释,如下所示: @MappedSuperclass @EntityListeners(TraceableEntity.TraceableEntityListener.class) public abstract class TraceableEntity { @C
@MappedSuperclass
注释),它扩展了可跟踪性,也用@MappedSuperclass
注释,如下所示:
@MappedSuperclass
@EntityListeners(TraceableEntity.TraceableEntityListener.class)
public abstract class TraceableEntity {
@Column
private Date createdOn;
@Column
private Date dateUpdated;
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
public Date getDateUpdated() {
return dateUpdated;
}
public void setDateUpdated(Date dateUpdated) {
this.dateUpdated = dateUpdated;
}
public static class TraceableEntityListener {
@PrePersist
public void beforeInsert(TraceableEntity entity) {
if (entity.getCreatedOn() == null) {
entity.setCreatedOn(new Date());
}
}
@PreUpdate
public void beforeUpdate(TraceableEntity entity) {
entity.setDateUpdated(new Date());
}
}
}
现在,在某些情况下,createdOn的值以dateUpdated结束,如下所示
简而言之,我的应用程序是一个从API检索数据的刮板。我在
CompletableFuture
中使用restemplate
同时下载数据,然后一次性保存所有内容。调用.save(…)
的方法用@Transactional
注释。当列表的大小小于大约1500时,可以保存,但由于某种原因,当列表的大小超过1500时,似乎出现了问题。我真的很感谢你在这件事上的时间和帮助 它总是发生在同一个地方吗?例如,您是否缺少一些行?也许你正在抓取的某些东西的文本中有一些特殊字符没有正确转义?您可能希望打开日志记录,以准确查看发送到服务器的内容
如果你只擦掉那些“有问题”的电影,结果很好,可能是因为实际问题发生在有问题的电影之前 奇怪的是,如果我只刮取
dateUpdated
中包含createdOn
的行(即屏幕截图中的最后4个条目),那么一切都很好。。。我不知道这里发生了什么……假设您想要一个带有Spring的审计机制,我认为使用Spring数据审计很容易。参考这个嗨Jeff,我刚刚发现这是API的问题,不是我的代码。。。