Hibernate:没有为实体指定标识符(是的,我用@Id装饰...)

时间:2013-08-28 06:43:52

标签: java spring hibernate annotations

我已经搜遍了整个地方,似乎这个问题的几乎所有答案都告诉我要注释我的id属性或@Id的getter。我试过两个都没有运气。这是我的整个班级失败:http://pastebin.com/Cpsdx2Rj 以下是我的例外:http://pastebin.com/uhs9e81b

正如我所说,我已经尝试将@Id devorator移动到该属性,但似乎根本没有做任何事情。

有关尝试什么的任何建议?调试所需的任何其他配置文件?

提前感谢您提供任何帮助!

3 个答案:

答案 0 :(得分:0)

您应该注释变量本身,而不是getter。

答案 1 :(得分:0)

您是否尝试在类定义之前添加 @Access(AccessType.PROPERTY),以将默认访问类型从字段更改为getter方法

像这样:

import javax.persistence.AccessType;


@Entity
@Access(AccessType.PROPERTY)
public class Comment implements DomainEntity {

    private Long id;

    @Id
    @Column (name="id",unique=true,nullable=false)
    @GeneratedValue(strategy=GenerationType.AUTO)
    public Long getId() {
            return this.id;
    }
    .
    .
    .
}

答案 2 :(得分:0)

我没有找到解决方案,但是从另一台计算机上测试显然版本不匹配(另一天的另一个问题)并没有导致这种情况。我删除了我的工作区,我的m2-cache,重新导入项目并重新加载所有依赖项,现在它突然工作(Spring版本问题和所有)。

谢谢大家的帮助。