Hibernate a pole autoincrement w MSSQL

0

Mam baze danyc z kluczem głównym jako pole AUTOINCREMENT. Oto mój kod:

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

tworz obiekt:


request = new Request();           
Timestamp date = new Timestamp(System.currentTimeMillis());
request.setDate(date);

A do bazy chce trafić obiekt:
Request{id=0, date=2017-12-11 1631.443},

Skąd to:0 w id? Otrzymuje taki bląd z bazy: DEFAULT or NULL are not allowed as explicit identity values.

Wcześniej pracowałem na Oracle i nie mialem tego typu problemów, jeśli typ id jest ustawiony na autoincrement wyczytalem w dokumentacji że ustawiam strategy = GenerationType.IDENTITY i id powinno wstawiać się automatycznie. Co robie źle?

0

Faktyczie, nie wiem jak migłem to przeoczyć. Dzięki serializacjivdla uproszczenia przykładu jeszcze nie zrobiłem.

0

pomogła zmiana dialektu, oże komuś się przyda ta informacja:

<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>

1 użytkowników online, w tym zalogowanych: 0, gości: 1