Hibernate与MSSQL自动增量列类型。如何添加记录

时间:2017-12-12 08:36:11

标签: sql-server hibernate auto-increment

我有一个关于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。我做错了什么?

1 个答案:

答案 0 :(得分:0)

这解决了一个问题:

org.hibernate.dialect.SQLServerDialect并