我只是沒有得到這裏的意思, 我想設置java的JPA與hibernate實現使用@OneToMany映射在這裏,並得到這個錯誤引起:org.hibernate.AnnotationException:@OneToOne或@ManyToOne在
Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on org.ppbni.splatter.model.KodePos.kode_korwil references an unknown entity: java.lang.String
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:107)
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1550)
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1473)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1389)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1345)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:720)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
這是我Kode_Pos類,
package org.ppbni.splatter.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.MapsId;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.ManyToOne;
import javax.persistence.CascadeType;
@SuppressWarnings("serial")
@Entity
@Table(name="kode_pos")
public class KodePos implements Serializable{
private String kode_pos;
private String kode_korwil;
private String kelurahan;
private String kecamatan;
@Id
@Column(name="kode_pos", unique=true, nullable=false)
public String getKode_pos() {
return kode_pos;
}
public void setKode_pos(String kode_pos) {
this.kode_pos = kode_pos;
}
@Column(name="kelurahan")
public String getKelurahan() {
return kelurahan;
}
public void setKelurahan(String kelurahan) {
this.kelurahan = kelurahan;
}
@Column(name="kecamatan")
public String getKecamatan() {
return kecamatan;
}
public void setKecamatan(String kecamatan) {
this.kecamatan = kecamatan;
}
private Korwil korwil;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="kode_korwil")
public Korwil getKorwil() {
return korwil;
}
public void setKorwil(Korwil korwil) {
this.korwil = korwil;
}
/**
* @param args
*/
}
,這是我korwil類,
package org.ppbni.splatter.model;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.MapsId;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
@SuppressWarnings("serial")
@Entity
@Table(name="korwil")
public class Korwil implements Serializable{
private String kode_korwil;
private String no_dana;
private String nama_korwil;
private String alias_jabatan;
private String jabatan_korwil;
@Id
@Column(name="kode_korwil", unique=true, nullable=false)
public String getKode_korwil() {
return kode_korwil;
}
public void setKode_korwil(String kode_korwil) {
this.kode_korwil = kode_korwil;
}
@Id
@JoinColumn(name="no_dana")
public String getNo_dana() {
return no_dana;
}
public void setNo_dana(String no_dana) {
this.no_dana = no_dana;
}
@Column(name="nama_korwil")
public String getNama_korwil() {
return nama_korwil;
}
public void setNama_korwil(String nama_korwil) {
this.nama_korwil = nama_korwil;
}
@Column(name="alias_jabatan")
public String getAlias_jabatan() {
return alias_jabatan;
}
public void setAlias_jabatan(String alias_jabatan) {
this.alias_jabatan = alias_jabatan;
}
@Column(name="jabatan_korwil")
public String getJabatan_korwil() {
return jabatan_korwil;
}
public void setJabatan_korwil(String jabatan_korwil) {
this.jabatan_korwil = jabatan_korwil;
}
private Set<KodePos> kodepos;
@OneToMany(fetch = FetchType.LAZY, mappedBy="korwil")
public Set<KodePos> getKodepos() {
return kodepos;
}
public void setKodepos(Set<KodePos> kodepos) {
this.kodepos = kodepos;
}
/**
* @param args
*/
}
任何幫助將是快樂:)
那麼,關聯是在實體之間,而不是在實體和字符串之間。 –
@JBNizet嗯,它應該是什麼? –
這是相當不清楚的,因爲我不知道這些詞的意思。但是如果你有一個實體測驗,有很多問題,那麼你應該有一個ManyToOne對類問題的現場測驗,這個字段應該是類型測驗,而不是字符串類型:一個問題屬於測驗,而不是a String –