【发布时间】:2015-12-04 04:14:02
【问题描述】:
Spring 例外。当我尝试使用@OneToMany 注释将我的实体绑定到表时。
引起:org.hibernate.AnnotationException:@OneToOne 或 @ManyToOne 在 com.wumf.iModuleSyncApps.impl.IAppEntity.packageName 上引用了一个 未知实体:java.lang.String at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:109) 在 org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1598) 在 org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1521) 在 org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1422) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846) 在 org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852) ... 41 更多
@Entity
@Table(name = "IApp")
public class IAppEntity {
@ManyToOne
@JoinColumn(referencedColumnName="packageName")
@Id
private String packageName;
private String icon;
private String name;
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
和
@Entity
@Table(name = "IAppsFriends")
public class IAppsFriends {
@GeneratedValue
@Id
private int id;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "packageName")
private List<IAppEntity> apps;
private String phone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public List<IAppEntity> getApps() {
return apps;
}
public void setPackageName(List<IAppEntity> apps) {
this.apps = apps;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
我还尝试将@JoinColumn(referencedColumnName="packageName") 更改为
@JoinColumnn(name="packageName") 无济于事。
【问题讨论】: