#java #spring #hibernate #jpa
#java #spring #гибернация #jpa
Вопрос:
Это мои классы:
@Entity
@Table(name="assessment")
public class AssesmentProperties {
@Id
@Column(name="AssessmentId")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long AssessmentId;
@Column(unique=true,nullable=false)
private String AssessmentName;
private String AssessmentLevel;
private String Specialization;
private int time;
private String keywords;
private int NoOfSections;
//getters and setters
}
@Embeddable
public class SettingsPrimary implements Serializable {
private Long AssessmentId;
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long Section;
//getters and setters
}
@Entity
@Table(name="section")
public class SectionProperties {
@EmbeddedId
private SettingsPrimary PrimaryKey;
private String SectionType;
private int Weightage;
private int time;
private int NoOfQuestions;
//getters and setters
}
В таблице section
мне нужно создать assessment_id
как FK для assessment
таблицы и установить каскад на удаление. Я пытался сделать это разными способами, но безуспешно.
Комментарии:
1. Создать атрибут типа
AssesmentProperties
? Вы можете установить каскад в@OneToOne
или@ManyToOne
аннотации с помощьюcascade=
Ответ №1:
Возможно, это могло бы вам помочь.
@Entity
@Table(name="section")
public class SectionProperties {
@Id
private Long PrimaryKey;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "assessment_id", referencedColumnName="AssessmentId")
private AssesmentProperties AssesmentProperties;
private String SectionType;
private int Weightage;
private int time;
private int NoOfQuestions;
//getters and setters
}
Я изменил идентификатор свойств раздела на Long
и сопоставил возможности оценки с реквизитом ManyToOne.
Таким образом, всегда, когда свойства AssessmentProperties, привязанные к разделу, будут удалены, связанные свойства SectionProperties тоже будут удалены.