這段代碼失敗了我在數(shù)據(jù)庫(kù)中有一個(gè)現(xiàn)有的版本化值,我使用 獲取該值entity manager.find并在實(shí)體上設(shè)置。VersionEntity version = entityManager.find(VersionEntity.class, 1);entities.forEach(__ -> __.setVersion(version));entities.forEach(entityManager::persist);entityManager.flush();我專門查找并分配版本 1,那么為什么它甚至?xí)L試使用版本 2。我什至嘗試過(guò)merge,但沒(méi)有奏效。我的屬性顯然是錯(cuò)誤的/不正確的。刷新失敗本地異常堆棧:異常 [EclipseLink-4002](Eclipse 持久性服務(wù) - 2.7.1.qualifier):org.eclipse.persistence.exceptions.DatabaseException 內(nèi)部異常:org.postgresql.util.PSQLException:錯(cuò)誤:插入或更新表“ t_quality_measurement”違反外鍵約束“fk_t_quality_measurement_version” 詳細(xì)信息:表“t_version”中不存在鍵(版本)=(2)。錯(cuò)誤代碼:0 調(diào)用:INSERT INTO T_QUALITY_MEASUREMENT (BRAND, DATE, KPICODE, KPICOMPAREVW, KPICOMPAREWT, KPIVALUE, ORGANISATIONUNIT, PHASE, PLANT, SERIES, SIGNALCOLOR, TECHNOLOGY, TEMPORALUNIT, (?, S?) ?, ?, ?, ?, ?, ?, ?, ?, ?) bind => [14 個(gè)參數(shù)綁定] 查詢:當(dāng)我專門查找 1 時(shí),我不確定為什么它會(huì)嘗試使用 2。@Entity@Table(name = "T_QUALITY_MEASUREMENT")public class QualityMeasurementEntity extends Versioned implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(columnDefinition = "serial") private Integer id; @Column(length = 100) private String series;版本化看起來(lái)像這樣@MappedSuperclasspublic abstract class Versioned { @ManyToOne @JoinColumn(name = "version", insertable = false, updatable = false) protected VersionEntity version = null; public VersionEntity getVersion() { return version; } public void setVersion(VersionEntity version) { this.version = version; }}和版本實(shí)體。@Entity@Table(name = "T_VERSION", indexes = { @Index(name = "pk_version", columnList = "id", unique = true)})@NamedQuery(name = "Version.findById", query = "SELECT v FROM VersionEntity v WHERE v.id = :id")public class VersionEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(columnDefinition = "serial") private Integer id; @Column(name = "CREATED") private LocalDateTime created;
添加回答
舉報(bào)
0/150
提交
取消