使用@SecondaryTable Annotation Spring Hibernate

时间:2017-04-23 12:15:50

标签: java spring hibernate spring-mvc

在我的数据库中我有两个看起来像这样的表:

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`)
)

我想使用Lokal Ocena注释将我的@SecondaryTable enitity映射到此Hibernate表,我设法实现了

@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--//

}

但我得到的只是错误说:

ERROR: Unknown column 'this_1_.Ocena_idOcena' in 'on clause'

我认为我误解了这个@SecondaryTable注释,但这是我的第一个Spring / Hibernate应用程序,所以我很乐意提供任何帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

@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--//

}