当前位置: 首页 > 知识库问答 >
问题:

Hibernate不在getter中提取@id注释

潘兴朝
2023-03-14

在当前项目中,我得到了以下AnnotationException:

AnnotationException:没有为实体指定标识符:My.Package.EntityClass

@Entity
@Table(name = "MY_TABLE")
public class EntityClass extends BaseEntityClass {

  private long id;

  @Override
  public void setId(long id) {
    this.id = id;
  }

  @Override
  @Id
  @SequenceGenerator(name = "FOOBAR_GENERATOR", sequenceName = "SEQ_MY_TABLE", allocationSize = 1, initialValue = 1)
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "FOOBAR_GENERATOR")
  public long getId() {
    return this.id;
  }

}
@Entity
@Table(name = "MY_TABLE")
public class EntityClass extends BaseEntityClass {

  @Id
  @SequenceGenerator(name = "FOOBAR_GENERATOR", sequenceName = "SEQ_MY_TABLE", allocationSize = 1, initialValue = 1)
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "FOOBAR_GENERATOR")
  private long id;

  @Override
  public void setId(long id) {
    this.id = id;
  }

  @Override
  public long getId() {
    return this.id;
  }

}

或者这种行为在Hibernate版本之间发生了变化?

共有1个答案

段成益
2023-03-14

只有到那时,您才需要在所有getter上一致地使用@id。确保没有用@id而不是getter注释字段。混合和匹配会使它停止正确工作。

 类似资料:
  • 问题内容: 给出以下示例: 我想在getter方法中获取调用组件的,以便可以通过键从属性文件返回大小。 我该如何实现? 问题答案: 从JSF 2.0开始,组件范围中有了一个新的隐式EL变量:它引用当前实例。在其getter方法中,您需要一种。 因此,您可以执行以下操作: 与 另外,您也可以制作一个, 以便执行以下操作: (每当您想将参数传递给方法时,都必须在EL中使用完整的方法名称而不是属性名称,

  • 问题内容: 标题不言自明。 我很高兴听到解决方案,谢谢。 问题答案: 到目前为止,有一种比列出的方法更短的方法:

  • Spark集群信息: null 我从一个工作人员那里向spark cluster提交了一个jar,我希望从提交中接收driver-Id,这样我就可以在以后的应用程序状态检查中使用该id。问题是我在控制台中没有得到任何输出。我使用端口进行提交,并将部署模式设置为。 通过跑步 在spark日志文件中,我可以看到下面提交的json响应,这正是我想要的: 我假设这不会让冗长的命令发挥作用。如何将其更改为使

  • 我有两个实体 和 此映射: 最近增加了。 在运行应用程序时,应用程序崩溃,错误是:通过JDBC语句执行DDL“alter table documents add debt__idbigint not null”时出错 我检查了Hibernate发送到数据库的sql查询,它是:更改表文档添加debt_idbigint不null 此查询失败,因为表上已经有记录,因此无法添加不带默认值的不可为空列。 那

  • 我跟着http://developer.android.com/guide/google/gcm/gs.html#server-在我的应用程序中实现GCM的应用程序 返回空字符串作为注册ID,还需要什么来获得注册ID??