2017-12-12 17 views
0

私はidにautoincrement genertorを付けたMSSQLの列を持っています。休止状態でそれをマップしよう:私が追加しようとしているMSSQL autoincrementカラム型のHibernate。レコードを追加するには

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); 

オブジェクト

@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; 
... 
} 

レコードメソッドを追加します: リクエスト{id = null、date = 2017-12-12 09:24:11.721}

データベースからのエラー: DEFAULTまたはNULLは明示的なID値として使用できません。

これは正しいですが、idは自動的に生成されるはずです:strategy = GenerationType.IDENTITY。私は間違っているの?

答えて

0

これは、問題を解決する:

org.hibernate.dialect.SQLServerDialect

関連する問題