【问题标题】:Hibernate Many to one mapping : Caused by: java.sql.SQLException: Invalid column name休眠多对一映射:引起:java.sql.SQLException:无效的列名
【发布时间】:2021-07-24 13:47:43
【问题描述】:

我有UsersSport 表。

一个用户只能拥有一项运动。

多个用户可以有相同的运动,所以我用这两列创建了一个连接表user_sport

  1. USER_ID
  2. SPORT_ID

在我的用户实体中,我使用了以下内容:

@ManyToOne
@JoinTable(name = "USER_SPORT,
joinColumns = {@JoinColumn(name = "USER_ID")},
inverseJoinColumns = {@JoinColumn(name = "SPORT_ID")})
private Sport sport;

体育是一种独立的身份。我能够坚持运动。

在持久用户上,我收到以下错误:-

2021-07-22 20:21:20,600 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] 错误: org.hibernate.engine.jdbc.spi。 SqlExceptionHelper - 列名无效

我在 Sport 实体中尝试过以下操作(虽然我认为没有这个应该可以工作),但它没有工作:-

@OneToMany(mappedBy = "SPORT")
@Fetch(FetchMode.JOIN)
@JsonIgnore
private Set<User> users;

他将非常感谢任何快速的帮助。

【问题讨论】:

    标签: spring jpa spring-data-jpa


    【解决方案1】:

    @prince 你错误地声明了 mappedBy。这应该是带有@joinColumn 注释的变量名。

    【讨论】:

    • 您好,先生,我正在使用一个名为“USER_SPORTS”的连接表,其中包含用户和运动的映射。它有 2 列 - SPORT_ID 和 USER_ID。这就是我使用 JoinTable 而不是 join 列的原因。
    • 我还尝试在 user 表中添加一列 sport_id,然后构造如下 bean:- SPORT ENTITY :- OneToMany(mappedBy = "SPORT") JsonIgnore private Set users = new HashSet ();用户实体:- ManyToOne JoinColumn(name = “SPORT”_ID) 私人体育运动;通过使用此方法,我在创建 bean 时遇到以下错误:-org.hibernate.AnnotationException:mappedBy 引用未知目标实体属性:entity.Sport.users 中的 entity.User.SPORT
    【解决方案2】:

    @Pilpo:我还尝试在用户表中添加一列 sport_id,然后构造如下 bean:-

    SPORT ENTITY :-                                                                       
    
    @OneToMany(mappedBy = "SPORT")
        @JsonIgnore
        private Set<User> users = new HashSet<>();
    

    用户实体:-

    @ManyToOne
     @JoinColumn(name = “SPORT”_ID)
     private Sport sport;
    

    通过使用这种方法,我在创建 bean 时遇到以下错误:-

    org.hibernate.AnnotationException: mappedBy 引用了一个未知的目标实体属性:entity.Sport.users 中的 entity.User.SPORT

    【讨论】:

    • 这是运动,不是运动。并且 @JoinColumn(name = “SPORT_ID”) 而不是 @JoinColumn(name = “SPORT”_ID)。
    • 我没有明白你的意思,请你解释一下
    • 大写很重要 :) => mappedBy = "sport"
    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 2023-03-14
    • 2012-02-02
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    相关资源
    最近更新 更多