Issue
In my db I have two tables which look like this:
CREATE TABLE IF NOT EXISTS `Lokal` (
`idLokal` int(11) NOT NULL AUTO_INCREMENT,
`Ocena_idOcena` int(11) NOT NULL,
PRIMARY KEY (`idLokal`,`Ocena_idOcena`),
KEY `fk_Lokal_Ocena_idx` (`Ocena_idOcena`)
)
CREATE TABLE IF NOT EXISTS `Ocena` (
`idOcena` int(11) NOT NULL AUTO_INCREMENT,
`Ocena` int(1) DEFAULT NULL,
PRIMARY KEY (`idOcena`)
)
I want to map my Lokal
entity to this Ocena
table using @SecondaryTable
Hibernate
annotation, what I managed to achieve is this:
@Entity
@Table(name="Lokal")
@SecondaryTable(name = "Ocena", pkJoinColumns=@PrimaryKeyJoinColumn(name="Ocena_idOcena"))
public class Lokal {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="idLokal")
private int id;
@Column(table="Ocena" ,name="idOcena")
private int rating;
//--Getters and Setters skipped--//
}
But all I get is an error saying:
ERROR: Unknown column 'this_1_.Ocena_idOcena' in 'on clause'
I think I'm misunderstanding the @SecondaryTable
annotation, but this is my first Spring/Hibernate application so I'd be glad for any kind of help.
Solution
Try this:
@Entity
@Table(name="Lokal")
@SecondaryTable(name = "Ocena", pkJoinColumns=@PrimaryKeyJoinColumn(name="idOcena"))
public class Lokal {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="idLokal")
private int id;
@Column(table="Ocena" ,name="rating")
private int rating;
//--Getters and Setters skipped--//
}
Answered By - Abdullah Khan
Answer Checked By - Willingham (JavaFixing Volunteer)