Ich bin nur nicht den Punkt hier, Ich versuche, Java JPA mit einer Hibernate-Implementierung mit @ OneToMany Mapping hier einzurichten und habe diesen FehlerVerursacht von: org.hibernate.AnnotationException: @OneToOne oder @ManyToOne auf
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)
das ist meine Kode_Pos Klasse,
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
*/
}
und das ist meine korwil Klasse,
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
*/
}
jede Hilfe Vergnügen sein wird :)
Nun, Assoziationen sind zwischen Entitäten, nicht zwischen einer Entität und einem String. –
@JBNizet hmm, was soll es sein ?? –
Es ist ziemlich unklar, da ich keine Ahnung davon habe, was diese Wörter bedeuten. Wenn Sie jedoch ein Entitäts-Quiz mit vielen Fragen haben, dann sollten Sie ein ManyToOne auf dem Feld-Quiz der Klasse Question haben, und dieses Feld sollte vom Typ Quiz sein, nicht vom Typ String: Eine Frage gehört zu einem Quiz, nicht zu ein String –