Jestem nowy w Hibernate i nie mogę użyć kolumny Identity. Kiedy uruchamiam mój program java za pomocą tożsamości jako generatora, daje to błąd, że "... nie może wstawić wartości domyślnej lub wartości pustej" w kolumnie tożsamości w tabeli. Kiedy używam inkrementacji jako generatora, daje to błąd, że "... identity_insert jest wyłączony".Hibernate i MS SQL Server Identity column
Czy ktoś może mnie poprowadzić, jak rozwiązać ten problem, aby móc używać Hibernate z moim stołem? Daj mi znać, jeśli chcę podać inne informacje.
Używam następujące słoiki:
- hibernate-commons-adnotacje-4.0.1.Final.jar
- hibernate-core-4.1.9.Final.jar
- hibernate- JPA-2,0-api 1.0.1.Final.jar
- sqljdbc4.jar
My Tabela:
Create Table ABC (
Unique_Number int IDENTITY(1,1),
Col1 varchar(100),
Col2 char(10),
CONSTRAINT pk_ABC_id PRIMARY KEY(Unique_Number)
)
hbm.xml:
<class name="org.data.ABCData" table="ABC">
<meta attribute="class-description">This is a test class.</meta>
<id name="uniqueNumber" type="int" column="Unique_Number">
<generator class="identity"/> <!-- tried identity, increment -->
</id>
<property name="col1" column="Col1" type="string" length="100"/>
<property name="col2" column="Col2" type="string" length="10"/>
</class>
ABC Element Klasa:
public class ABC {
private int uniqueNumber;
private String col1;
private String col2;
public int getUniqueNumber() {
return uniqueNumber;
}
public void setUniqueNumber(int uniqueNumber) {
this.uniqueNumber = uniqueNumber;
}
public int getCol1() {
return col1;
}
public void setCol1(String col1) {
this.col1 = col1;
}
public int getCol2() {
return col2;
}
public void setCol2(String col2) {
this.col2 = col2;
}
}
hibernate.cfg.xml:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class"></property>
<property name="hibernate.connection.url"></property>
<property name="hibernate.connection.username"></property>
<property name="connection.password"></property>
<property name="connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="show_sql">false</property>
<mapping resource="data.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Witaj Shazin,
Dziękuję za odpowiedź.
Próbowałem następujące, ale wszystkie nie powiodło się z błędami pokazanymi wraz z:
native - DEFAULT lub NULL nie są dozwolone jako jawne wartości tożsamości. [n/d]
inkrementacja - Nie można wstawić jawnej wartości dla kolumny tożsamości w tabeli "Audit_Records", gdy IDENTITY_INSERT jest ustawione na OFF.
Identyfikacja - DEFAULT lub NULL nie są dozwolone jako jawne wartości tożsamości.
sekwencja - Niepoprawna składnia w pobliżu "wartości".
przypisana - inny obiekt z tą samą wartością identyfikatora był już powiązany z sesją.
–