В настоящее время я разрабатываю свой проект под Spring с JPA.
Прежде всего, вот моя схема базы данных для справочной информации
![Database Schema](https://i.stack.imgur.com/KVXcA.png)
Итак, я испытываю трудности, когда пытаюсь использовать history_id HISTORY в качестве первичного ключа TAG.Это дает мне ошибку ...Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: This class [class com.wrapsody.demo.HistoryTag] does not define an IdClass
.
Поэтому я добавил @IdClass(HistoryTag.HistoryTagAssignId.class)
в свой HistoryTag.java
@NoArgsConstructor(access = AccessLevel.PROTECTED) @Data @Entity
@IdClass(HistoryTag.HistoryTagAssignId.class)
public class HistoryTag implements Serializable {
@Id
@ManyToOne
private History history;
@Column
private String tagName;
@Builder
public HistoryTag(String tagName) {
this.tagName = tagName;
}
@NoArgsConstructor
public static class HistoryTagAssignId implements Serializable {
private History history;
public HistoryTagAssignId(History history) {
this.history = history;
}
}
}
Для справки, это History.java
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Data
@Entity
public class History {
@Id
@GeneratedValue
private Long historyId;
@Column
private String historyMaterName;
@Column
private String historyFreeSetName;
History(String historyMaterName, String historyFreeSetName) {
this.historyMaterName = historyMaterName;
this.historyFreeSetName = historyFreeSetName;
}
}
Любое руководство по решению этой ошибкисообщение приветствуется.Спасибо!