首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA/Hibernate:连接列时“缺少列”

问JPA/Hibernate:连接列时“缺少列”
EN

Stack Overflow用户
提问于 2012-01-16 23:43:13
回答 1查看 3.5K关注 0票数 3

我对JPA或Hibernate不是很熟悉。我正在接管别人的代码,现在我只是想让它正常工作。考虑到我的理解有限,我将尽量具体,而不是淹没在不必要的细节中。

我得到了一个运行时异常"org.hibernate.HibernateException: Missing column: name in public.sessions“。下面是应用程序这一部分的基本组织:

代码语言:javascript
复制
@Entity
@Table(name = "sessions")
public class Session {
    @ManyToOne
    @JoinColumns({
        @JoinColumn(name = "article_name",
            referencedColumnName = "article_name",
            insertable = false, updatable = false),
        @JoinColumn(name = "group_name",
            referencedColumnName = "name",
            insertable = false, updatable = false) })
    private Group group;

    ...
}

@Entity
@Table(name = "groups")
public class Group {
    ...
}

下面是相关的表格。模式比这个复杂得多(也是没有商量余地的--我不能改变我们现有的基线),但这些是相关的表/列。

代码语言:javascript
复制
sessions
--------
article_name
group_name
...


groups
--------
article_name
name
...

正如您所看到的,两个表中组名称列的名称是不同的。虽然我对JPA了解不多,但我认为使用"referencedColumnName“属性可以在连接两个名称不同的列时说明这种差异。但是,使用此代码运行会产生"Missing column: name in public.sessions“异常。如果我为第二个@JoinColumn注释切换" name“和" referencedColumnName”属性的值(结果是name= "name",referencedColumnName= " group_name "),我得到异常"org.hibernate.MappingException: Unable to find column with logical name: group_name in groups“。

我在网上找到了很多类似的例子,但不管是什么原因,我都不能让它正常工作。无论如何,这段代码过去工作正常,但正如我们发现的那样,这是因为Hibernate被配置为根据需要更新表(因此,"name“列被添加到会话表中)。一旦我们将"hbm2ddl.auto“属性更改为"validate”,我们就开始收到这个错误。正因为如此,我认为问题一直存在,只是我们没有注意到它,因为该列正在被添加。

提前感谢所有人的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-16 23:53:45

referencedColumnName是在外键中引用的group表中的列。在group表中,用作外键的列的实际名称是"name“。

以下是有意义的:

代码语言:javascript
复制
@JoinColumn(name = "group_name",
            referencedColumnName = "name",

因为,那么外键列的名称将是group_name,而group表中被引用(或用作外键)的列的名称将是name。但是当您更改它时,它就不起作用了,因为在您的group表中没有名为group_name的列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8882382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档