![](/img/trans.png)
[英]AnnotationException: A Foreign key refering has the wrong number of column. should be 0
[英]A Foreign key refering has the wrong number of column. should be 2
這是我的代碼
虛擬人
public class VirsualPerson extends Person{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@PrimaryKeyJoinColumn(name="VIRSUALPERSON_ID")
private long virsualPersonId;
@ManyToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@JoinTable(name="Anime_character",catalog="anime",joinColumns={
@JoinColumn(name="VIRSUALPERSON_ID",nullable=false)},inverseJoinColumns={@JoinColumn(name="ANIME_ID",nullable=false)})
private Set<Anime>animeCharacters=new HashSet<Anime>();
@OneToMany(fetch=FetchType.LAZY,mappedBy="charecter")
private Set<VirsualPeopleComment>comments=new HashSet<VirsualPeopleComment>();
public long getVirsualPersonId() {
return virsualPersonId;
}
public void setVirsualPersonId(long virsualPersonId) {
this.virsualPersonId = virsualPersonId;
}
public Set<Anime> getAnimeCharacters() {
return animeCharacters;
}
public void setAnimeCharacters(Set<Anime> animeCharacters) {
this.animeCharacters = animeCharacters;
}
public Set<VirsualPeopleComment> getComments() {
return comments;
}
public void setComments(Set<VirsualPeopleComment> comments) {
this.comments = comments;
}
}
虛擬人評論
@Entity
@Table(name="people_comment")
public class VirsualPeopleComment {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="peopleCommentId")
private long commentId;
@Column(name="content")
private String commentContent;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="POST_TIME")
private Date postTime;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="USER_ID")
private User commentUser;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="VIRSUALPERSON_ID")
private VirsualPerson charecter;
public long getCommentId() {
return commentId;
}
public void setCommentId(long commentId) {
this.commentId = commentId;
}
public String getCommentContent() {
return commentContent;
}
public void setCommentContent(String commentContent) {
this.commentContent = commentContent;
}
public Date getPostTime() {
return postTime;
}
public void setPostTime(Date postTime) {
this.postTime = postTime;
}
public User getCommentUser() {
return commentUser;
}
public void setCommentUser(User commentUser) {
this.commentUser = commentUser;
}
public VirsualPerson getCharecter() {
return charecter;
}
public void setCharecter(VirsualPerson charecter) {
this.charecter = charecter;
}
}
這是錯誤
從 VirsualPeopleComment 引用 VirsualPerson 的外鍵具有錯誤的列數。 應該是 2我想知道我的注釋有什么問題,非常感謝
我想你也應該在這里指定@JoinColumn:
@OneToMany(fetch=FetchType.LAZY,mappedBy="charecter")
private Set<VirsualPeopleComment>comments=new HashSet<VirsualPeopleComment>();
看起來應該是
@OneToMany(fetch=FetchType.LAZY,mappedBy="charecter")
@JoinColumn(name="peopleCommentId")
private Set<VirsualPeopleComment>comments=new HashSet<VirsualPeopleComment>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.