Ссылка на объект по атрибуту другого идентификатора - PullRequest
0 голосов
/ 21 января 2019

У меня есть класс Состав:

@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 в дБ это поле содержит code_structure родительской структуры, а не ее идентификатор.

У меня есть интерфейс StructureRepository, из которого я хочу получить все имеющиеся у меня структуры. Я получаю ошибку при выполнении: structureRepository.findAll():

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

Можно ли использовать другое поле, кроме идентификатора, для установки родительской структуры?

1 Ответ

0 голосов
/ 21 января 2019

Если ваш @JoinColumn(name = "code_structure_mere") ссылается на столбец code_structure_mere , не

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

должен быть

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

В любом случае, я нашел пост в блоге , который может помочь вам, я думаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...