SQL服务器身份已启用,但org.hibernate.id.IdentifierGenerationException:此类的ID必须在查询调用save()之前手动分配。

问题描述 投票:0回答:1
我正在使用json输入hibernate在Java中构建一个REST Web服务,用于数据库连接和数据库,我正在使用MS SQL Server作为数据库。尽管我的数据库表ID列设置为自动递增,但我遇到了此类错误ID,在查询调用save()之前必须手动分配此类的错误ID

以下是我的JSON请求示例:

{ "message": "Hi", "createdOn": "2020-04-29T19:39:14.589+05:30", "amount": "58.1" }

我的模型类就是这样,我已经尝试了所有方法。自动增量功能已在我的SQL Server表中打开,可能是什么问题?:

import java.util.Date; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.xml.bind.annotation.XmlRootElement; @Entity @Table(name = "MessagesDetail") @XmlRootElement public class Message { @Id @Column(name = "msg_id",unique=true, nullable = false) @GeneratedValue(strategy=GenerationType.AUTO) private Long msg_id; @Column private String message; @Column private Date createdOn; @Column private Double amount; public Long getMsg_id() { return msg_id; } public void setId(Long msg_id) { this.msg_id= msg_id; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Date getCreatedOn() { return createdOn; } public void setCreatedOn(Date createdOn) { this.createdOn = createdOn; } public Double getAmount() { return amount; } public void setAmount(Double amount) { this.amount = amount; } public Message() { } public Message(Long id, String message, Date createdOn, Double amount) { this.id = id; this.message = message; this.createdOn = createdOn; this.amount = amount; } }
然后,我使用以下代码保存它:

public void addMessage(Message bean){ Session session = SessionUtil.getSession(); Transaction tx = session.beginTransaction(); addMessage(session,bean); tx.commit(); session.close(); } private void addMessage(Session session, Message bean){ Message message = new Message(); message.setMessage(bean.getMessage()); message.setCreatedOn(bean.getCreatedOn()); message.setAmount(bean.getAmount()); session.save(Message); }

我正在使用json输入hibernate在Java中构建一个REST Web服务,用于数据库连接和数据库,我正在使用MS SQL Server作为数据库。尽管我的数据库表ID列设置为自动递增,但我还是...
java hibernate rest jersey identifier
1个回答
0
投票
我将id参数类的映射更改为

identity

© www.soinside.com 2019 - 2024. All rights reserved.