Java JPA问题,使用父实体';子对象的s主键';s实体';s主键
我目前正在用JPA开发我的Spring项目 首先,这里是我的数据库模式的背景信息 所以,当我尝试使用历史的history\u id作为TAG的主键时,我遇到了一些困难。它给了我Java JPA问题,使用父实体';子对象的s主键';s实体';s主键,java,spring-boot,jpa,Java,Spring Boot,Jpa,我目前正在用JPA开发我的Spring项目 首先,这里是我的数据库模式的背景信息 所以,当我尝试使用历史的history\u id作为TAG的主键时,我遇到了一些困难。它给了我…init方法调用失败;嵌套的异常是java.lang.IllegalArgumentException:此类[class com.wrapsody.demo.HistoryTag]未定义IdClass错误 因此,我在HistoryTag.java中添加了@IdClass(HistoryTag.HistoryTagAss
…init方法调用失败;嵌套的异常是java.lang.IllegalArgumentException:此类[class com.wrapsody.demo.HistoryTag]未定义IdClass
错误
因此,我在HistoryTag.java中添加了@IdClass(HistoryTag.HistoryTagAssignId.class)
@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;
}
}
如有任何关于解决此错误的指导,我们将不胜感激。
谢谢 对于标记表,您不需要实体类。其历史实体具有:
@ElementCollection
@CollectionTable(
name="TAG",
joinColumns=@JoinColumn(name="HISTORY_ID")
)
@Column(name="TAG_NAME")
List<String> tags;
@ElementCollection
@收集表(
name=“TAG”,
joinColumns=@JoinColumn(name=“HISTORY\u ID”)
)
@列(name=“TAG\u name”)
列出标签;
您好,我没有看到这两个类之间有任何子-父关系。我尝试在本地运行相同的代码,对我来说效果很好。我在HistoryTag.javaok中使用了@ManyToOns注释,这是实体之间的关联。您的意思是没有问题??。。为什么它向我显示错误。。。。。。。。。。