如何将SaveMethodA与Hibernate注释一起使用而不增加值?

如何将SaveMethodA与Hibernate注释一起使用而不增加值?,hibernate,Hibernate,我尝试使用save()方法,但数据库架构没有Id的递增值,因此它给出了异常: 在调用save()之前,必须手动分配此类的ID 所以我想这样做,我该怎么做?您可以使用@GeneratedValue注释并指定GenerationType标识 @Id @GeneratedValue(strategy=GenerationType.IDENTITY) public Long getId() { ... } 阅读更多信息,请访问还有多种其他选项可用于密钥生成 请看这里: 是的,这是因为当您使用IDEN

我尝试使用save()方法,但数据库架构没有Id的递增值,因此它给出了异常: 在调用save()之前,必须手动分配此类的ID


所以我想这样做,我该怎么做?

您可以使用@GeneratedValue注释并指定GenerationType标识

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
public Long getId() { ... } 

阅读更多信息,请访问

还有多种其他选项可用于密钥生成

请看这里:


是的,这是因为当您使用IDENTITY时,您必须手动设置id字段的值。我想要的是:在没有注释的情况下,我们使用Save()方法,此时它返回id正确吗?同样,我希望使用注释..并且我的列不应自动递增,正如您所说,您的列不应自动递增,但您希望使用save方法,因此根据此方法返回具有自动生成标识符的对象,或者在标识(或分配)的情况下,生成器将使用现有ID。是的,我理解,但是,看,我正在使用hbm.xml创建这个列,这里的列是由Hibernate本身创建的(没有自动增量),我正在使用Save(),所以它返回我的id。一切都很好。但是,当我对注释使用相同的模式时,比如:@身份证@GeneratedValue@Column(name=“msgId”)@Type(Type=“long”)公共长消息;公共字符串msgID;它给出了一个例外:id为null读取此链接-。它解释了生成器的值。这个问题是模糊和混乱的。不清楚问题是关于Hibernate模式生成、持久化实体还是将Hibernate用于不支持自动递增PK列的数据库。