我有一个关于MSSQL的专栏,在Id中有自动增量发生器。尝试使用Hibernate映射它:
@Entity
@Table(name = "[Request]")
public class Request implements Serializable{
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
int id;
@Column(name = "[Date]")
java.sql.Timestamp date;
...
}
添加记录方法:
public static Request addRequest(Request r) throws IOException{
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx=null;
try{
tx = session.beginTransaction();
session.save(r);
tx.commit();
}
catch (Exception e) {if (tx!=null) tx.rollback();e.printStackTrace();}
finally {session.close();}
return r;
}
我试图添加的对象:
request = new Request();
Timestamp date = new Timestamp(System.currentTimeMillis());
request.setDate(date);
我尝试添加到数据库的对象: 请求{id = null,date = 2017-12-12 09:24:11.721}
数据库错误: 不允许使用DEFAULT或NULL作为显式标识值。
这是正确的,但id应该自动生成,因为我使用过:strategy = GenerationType.IDENTITY。我做错了什么?
答案 0 :(得分:0)
这解决了一个问题:
org.hibernate.dialect.SQLServerDialect并