Hibernate @ManyToOne Cascade работает очень странноJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Hibernate @ManyToOne Cascade работает очень странно

Сообщение Anonymous »


У меня есть проект, в котором каждый Студент может быть проверен Тестировщиком, а один тестировщик может протестировать множество студентов.
Мне нужно, чтобы студенты знали своих тестировщиков, поэтому это однонаправленная программа «Многие к одному».

Тестер:

@Entity Тестер публичного класса { @Идентификатор @GeneratedValue(стратегия = GenerationType.IDENTITY) частный длинный идентификатор; @Column (обнуляемый = ложь) частное имя строки; общедоступный тестер (имя строки) { это.имя = имя; } защищенный тестер(){} общедоступная строка getName() { вернуть это.имя; } @Override публичная строка toString() { return String.format("Тестер [id=%s, name=%s]", this.id, this.name); } } Студент:

@Entity Студент публичного класса { @Идентификатор частный длинный идентификатор; //это не должно автоматически увеличиваться @Column (обнуляемый = ложь) частный возраст; @ManyToOne(каскад = CascadeType.PERSIST) @JoinColumn(name = "tester_id") частный тестер-тестер; публичный студент (длинный идентификатор, int age, тестер-тестер) { this.id = идентификатор; this.age = возраст; this.tester = тестер; } защищенный студент(){} публичный int getAge() { вернуть this.age; } общедоступный тестер getTester() { вернуть этот.тестер; } @Override публичная строка toString() { return String.format("Студент [id=%s, age=%s, tester=%s]", this.id, this.age, this.tester); } } Когда я запускаю этот код:

Тестер тестер = новый тестер("Тестер"); Студент студент = новый студент(1L, 27, тестер); this.studentRepository.save(студент); Я ожидаю, что оба объекта будут сохранены из-за каскада, но вместо этого получаю ошибку sql, потому что имя тестера магическим образом равно нулю?!? Если я удалю nullable = false из столбца, объект тестера сохранится, но с нулевым значением в столбце имени... Что, черт возьми, я сделал не так?

Не советуйте сначала сохранять тестер: это не поможет, потому что я хочу понять, что не так с моим кодом.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»