我有一個實體 Job 如下。@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;}這是我的桌子。JobJOB_ID NOT NULL NUMBER PRINT_JOB_ID VARCHAR2(30) Print_FilePRINT_JOB_ID NOT NULL VARCHAR2(30) FILE_ID NOT NULL VARCHAR2(50) 嘗試使用 Sprint 引導休息 API 獲取作業數據時,java.sql.SQLSyntaxErrorException: ORA-01722: invalid number出現錯誤。所有的數據類型映射似乎都是正確的,還有什么可能出錯的?編輯:當我擺脫聯接時,作業實體可以毫無問題地獲取。即 Job 實體中 printFileInfos 的整個聲明。這讓我認為問題出在 join 或 PrintFile 實體中。
1 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
我建議您嘗試以下給定的代碼。添加 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>();
添加回答
舉報
0/150
提交
取消