OneToOne - Unknown column 'competence0_nCompetenceID' in 'fi
sleepycrom Sep 20, 2005 8:06 AMWhat wrong with this code ?
@Entity
@Table(name="Competence")
public class Competence implements java.io.Serializable {
private int competenceID;
private Employee employee;
@Id(generate = GeneratorType.AUTO)
@Column(name="nCompetenceID", unique=true)
public int getCompetenceID() {
return this.competenceID;
}
public void setCompetenceID(int competenceID) {
this.competenceID = competenceID;
}
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(insertable=false, updatable=false, name="cEmployeeID")
public Employee getEmployee() {
return this.employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
}
@Entity
@Table(name = "Employee")
public class Employee implements java.io.Serializable {
private String employeeID;
private Competence competence;
@Id
@Column(name="EMPLOYEEID", unique=true)
public String getEmployeeID() {
return this.employeeID;
}
public void setEmployeeID(String employeeID) {
this.employeeID = employeeID;
}
@OneToOne(mappedBy="employee", fetch=FetchType.LAZY)
public Competence getCompetence() {
return this.competence;
}
public void setCompetence(Competence competence) {
this.competence = competence;
}
}Database script(mySQL):
CREATE TABLE `EMPLOYEE` ( `EMPLOYEEID` VARCHAR(5) NOT NULL, `COMPANYID` VARCHAR(5) NOT NULL, `NAME` VARCHAR(25) NOT NULL, `SURNAME` VARCHAR(25) NOT NULL, `MOBILE` VARCHAR(16) NULL, `EMAIL` VARCHAR(20) NULL, `COMMISSION` NUMERIC NOT NULL, `PARTTIME` NUMERIC NULL, `ROLE` VARCHAR(50) NOT NULL, `INTERNAL` VARCHAR(1) NOT NULL, `INACTIVEDATE` DATETIME NULL, `cPASSWORD` VARCHAR(100) NULL, PRIMARY KEY(`EMPLOYEEID`) ); CREATE TABLE `Competence` ( `cCompetenceID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `cEmployeeID` VARCHAR(5) NOT NULL, `cDescription` LONGTEXT NOT NULL, `dtgModified` DATETIME NOT NULL, `dtgCreated` DATETIME NOT NULL, PRIMARY KEY(`cCompetenceID`), INDEX `Competence_FKIndex1`(`cEmployeeID`), FOREIGN KEY(`cEmployeeID`) REFERENCES `EMPLOYEE`(`EMPLOYEEID`) ON DELETE NO ACTION ON UPDATE NO ACTION );
Employee entity work fine alone, but when I tried to create a OneToOne connection, I got following error...
[org.hibernate.util.JDBCExceptionReporter] could not load an entity: [no.antares.domain.Competence#adm] [select competence0_.nCompetenceID as nCompete1_1_1_, competence0_.cDescription as cDescrip2_1_1_, competence0_.dtgModified as dtgModif3_1_1_, competence0_.dtgCreated as dtgCreated1_1_, competence0_.cEmployeeID as cEmploye5_1_1_, employee1_.EMPLOYEEID as EMPLOYEEID4_0_, employee1_.NAME as NAME4_0_, employee1_.COMMISSION as COMMISSION4_0_, employee1_.COMPANYID as COMPANYID4_0_, employee1_.EMAIL as EMAIL4_0_, employee1_.INACTIVEDATE as INACTIVE6_4_0_, employee1_.INTERNAL as INTERNAL4_0_, employee1_.MOBILE as MOBILE4_0_, employee1_.PARTTIME as PARTTIME4_0_, employee1_.ROLE as ROLE4_0_, employee1_.SURNAME as SURNAME4_0_ from Competence competence0_ left outer join Employee employee1_ on competence0_.cEmployeeID=employee1_.EMPLOYEEID where competence0_.cEmployeeID=?] java.sql.SQLException: Unknown column 'competence0_.nCompetenceID' in 'field list'