使用Logger时Hibernate MappingException

Flu*_*ffy 1 java hibernate slf4j

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

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

产生的错误是:

[错误]引起:org.hibernate.MappingException:无法确定:org.slf4j.Logger的类型,在表:container,对于列:[org.hibernate.mapping.Column(logger)]

根据我的理解,静态字段在这种情况下应该没问题.那么为什么hibernate试图创建一个列"logger"?

我的依赖项是log4j 1.2.17,slf4j-api 1.7.7和slf4j-log4j12-1.7.7.

谢谢!

Jam*_*ENL 5

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

Hibernate不关心你的领域是staticfinal(这是Java构造),所有它关心的是,它不能映射字段值的数据库列.将您的记录器标记为@Transient,Hibernate将忽略它.