У меня есть простое приложение Spring Boot, где я использую Spring Boot Cassandra. Когда я создаю сущность (в моем случае это пользователь) и сохраняю ее, я хочу, чтобы идентификатор генерировался автоматически, но аннотация @ GeneratedValue не работает.
Так я сохраняюuser:
userRepository.save(user);
И это часть моей пользовательской таблицы:
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
@Table
public class User implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
....
Это зависимость от pom, которую я добавил в свой pom, так как generateValue не появилось из коробки:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
Это моя конфигурация Cassandra:
@Configuration
@EnableCassandraRepositories
public class CassandraConfig extends AbstractCassandraConfiguration {
@Value("${cassandra.keyspace}")
private String keySpace;
@Override
protected String getKeyspaceName() {
return keySpace;
}
@Override
protected boolean getMetricsEnabled() {
return false;
}
/*
* Automatically configure a table if doesn't exist
*/
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.CREATE_IF_NOT_EXISTS;
}
@Override
public String[] getEntityBasePackages() {
return new String[]{"com.domain.model"};
}
}
Я получаю эту ошибку: Недопустимое нулевое значение в условии для идентификатора столбца;вложенным исключением является com.datastax.driver.core.exceptions.InvalidQueryException: недопустимое нулевое значение в условии для идентификатора столбца ",
Я ценю любую помощь.