【问题标题】:Hibernate MappingException when using Logger使用 Logger 时出现 Hibernate MappingException
【发布时间】:2014-08-05 17:02:55
【问题描述】:

我有一个奇怪的错误: 我有一个使用 Hibernate 的带注释的类。一切都很好,直到我开始像这样引入日志记录:

@Entity
@Table(name = "GROUP_TABLE")
public class Group {
    private static final Logger logger = LoggerFactory.getLogger(Group.class);  

产生的错误是:

[错误] 原因:org.hibernate.MappingException:无法确定 输入:org.slf4j.Logger,在表:容器,列: [org.hibernate.mapping.Column(logger)]

据我了解,在这种情况下,静态字段应该没问题。那么为什么hibernate会尝试创建一个列“logger”呢?

我的依赖是 log4j 1.2.17、slf4j-api 1.7.7 和 slf4j-log4j12-1.7.7。

谢谢!

【问题讨论】:

    标签: java hibernate slf4j


    【解决方案1】:

    因为您的类被注释为@Entity@Table,Hibernate 假定所有字段(无论修饰符如何)都映射到数据库列。

    Hibernate 不在乎您的字段是 staticfinal(它们是 Java 构造),它只关心它不能将字段值映射到数据库列。将您的记录器标记为@Transient,Hibernate 将忽略它。

    【讨论】:

    • Grrr。我试过了,但是很明显地做了一些旧的修订。现在它就像一个魅力。谢谢!
    猜你喜欢
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    相关资源
    最近更新 更多