gpt4 book ai didi

java - ORA-01722 : invalid number when using Hibernate

转载 作者:行者123 更新时间:2023-12-01 19:43:58 27 4
gpt4 key购买 nike

我有一个实体作业,如下所示。

@Entity
@Getter
@Setter
@NoArgsConstructor
@Immutable
@ToString
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@Table(name = "JOB")
public class Job extends BaseEntity implements IEntity, IDto {

@Id
@Column(name = "JOB_ID", unique = true, nullable = false)
private Long id;

@Column(name = "PRINT_JOB_ID", length = 30)
private String printJobId;

@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "PRINT_JOB_ID", nullable = false, insertable = false, updatable = false)
private Set<PrintFile> printFileInfos = new HashSet<PrintFile>();
}

我还有另一个实体 PrintFile。

@Entity
@Getter
@Setter
@NoArgsConstructor
@Immutable
@Table(name = "PRINT_FILE")
public class PrintFile implements Serializable {
@Id
@Column(name = "FILE_ID", unique = true, nullable = false, length = 50)
private String fileId;

@Column(name = "PRINT_JOB_ID", nullable = false, length = 30)
private String printJobId;
}

这是我的表格。

Job

JOB_ID NOT NULL NUMBER
PRINT_JOB_ID VARCHAR2(30)

Print_File

PRINT_JOB_ID NOT NULL VARCHAR2(30)
FILE_ID NOT NULL VARCHAR2(50)

当尝试使用 Sprint boot Rest API 获取作业数据时,我收到 java.sql.SQLSyntaxErrorException: ORA-01722: invalid number 错误。所有数据类型映射似乎都是正确的,还有什么可能出错?

编辑:

当我摆脱连接时,Job 实体的获取没有任何问题。即 Job 实体中 printFileInfos 的完整声明。这让我认为问题出在连接或 PrintFile 实体中。

最佳答案

我建议您尝试下面给出的代码。添加referencedColumnName属性后,它对我有用。

   @OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "PRINT_JOB_ID", referencedColumnName = "PRINT_JOB_ID", nullable = false, insertable = false, updatable = false)
private Set<PrintFile> printFileInfos = new HashSet<PrintFile>();

关于java - ORA-01722 : invalid number when using Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54244166/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com