在ID以外的属性上引用对象

时间:2019-01-21 14:46:36

标签: spring jpa

我有结构类:

@Entity
@Table(name = "structure")

public class Structure {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_structure", unique = true)
private Long id;

@Column(name = "code_structure")
private String codeStructure;

@ManyToOne
@JoinColumn(name = "code_structure_mere")
private Structure parentStructure;

@OneToMany(mappedBy = "parentStructure")
private List<Structure> sousStructures;

....

对于parentStructure:由code_structure_mere映射     在db中,此字段包含父结构的code_structure而不是其ID。

我有一个接口StructureRepository,我可以从该接口检索我拥有的所有结构。我在执行时遇到错误: structureRepository.findAll()

SQL Error: 0, SQLState: 22003
Mauvaise valeur pour le type long : 09N008000

我可以使用id以外的其他字段来设置父结构吗?

1 个答案:

答案 0 :(得分:0)

如果您的@JoinColumn(name = "code_structure_mere")引用了 code_structure_mere 列,则不是

@Column(name = "code_structure")
private String codeStructure;

应该是

@Column(name = "code_structure_mere")
private String codeStructure;

无论如何,我发现blog post可以为您提供帮助。