java - 使用 @SecondaryTable 注解映射实体 Spring Hibernate

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

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

@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 应用程序,因此我很高兴获得任何类型的帮助。

最佳答案

试试这个:

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

}

关于java - 使用 @SecondaryTable 注解映射实体 Spring Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43571016/

相关文章:

java - 如何在 MyBatis 中调用返回 Oracle 记录类型的 Oracle 函数

java - 使用 Hibernate 保存列表更改

JAVA:尝试编写一个方法来检查字符串是否为数字。总是返回 false

java - 运行 sbt install-emulator 时出错

java - 我需要 Google Map API 的帮助

java - Spring MVC 中的 Controller 和 Handler 有什么区别?

java - Spring MVC 3 验证 - 找不到默认提供程序

java - 如何实现栈中的空元素

java - 具有相同数据/列但表名不同的 Hibernate 和表

java - Hibernate PersistentSet remove() 操作不起作用