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。私は間違っているの?