Я создаю отдыхающий веб-сервис в Java с json входным режимом гибернации для подключения к БД и для БД. В качестве базы данных я использую MS SQL Server. Хотя для моего столбца идентификаторов таблицы БД установлено автоматическое приращение, я испытываю эту ошибку, для которой необходимо назначить идентификаторы ошибок для этого класса перед вызовом запроса save ()
Ниже приведен мой 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);
}