java hibernate eclipse xml-使用不带主键的实体

java hibernate eclipse xml-使用不带主键的实体,java,hibernate,Java,Hibernate,我有一个问题,如果我们在数据库中创建任何表,即没有任何主键(所有列的值都可以为null) 在使用Hibernate时,我们不能在Hibernate O/R映射(即hbm.xml文件)中没有ID字段的情况下进行映射 我面临的问题是没有ID字段的.hbm.xml文件没有得到验证 我从大家那里得到了答案,但我有一个问题,我们可以在实体类中使用ID变量前缀的瞬态关键字,这样就不会将该值持久化到数据库中吗?唯一真正的解决方案是修复损坏的数据模型。没有主键的实体不是关系数据,因此您不能期望ORM产品能够知道

我有一个问题,如果我们在数据库中创建任何表,即没有任何主键(所有列的值都可以为null)

在使用Hibernate时,我们不能在Hibernate O/R映射(即hbm.xml文件)中没有ID字段的情况下进行映射

我面临的问题是没有ID字段的.hbm.xml文件没有得到验证


我从大家那里得到了答案,但我有一个问题,我们可以在实体类中使用ID变量前缀的瞬态关键字,这样就不会将该值持久化到数据库中吗?

唯一真正的解决方案是修复损坏的数据模型。没有主键的实体不是关系数据,因此您不能期望ORM产品能够知道如何处理它

在没有主键或唯一标识行的情况下,Hibernate将如何执行更新


谢谢。

在hibernate中不能这样做。你无论如何也不应该这么做。数据库警告您,不建议使用主键

如果确实没有形成唯一键的一组列,则有两个选项:

  • 添加自动递增主键(首选)
  • 使用原始JDBC从该特定表获取数据。您可以使用hibernate的
    session.doWork(..)
    方法来实现这一点

此表是否以某种方式与任何其他表无关?根据我知道否,没有id您无法创建它,因为hibernate使用主键作为保留标识的方法。