Spring в Котлине, создание таблиц Cassandra не работает
кажется, что может быть проблема с аннотированием таблиц данных с kotlin, это не работало с jdbc, и теперь то же самое с cassandra.
я продолжаю получать это
Вызвано: org.springframework.data.cassandra.CassandraInvalidQueryException: Query; CQL [ОТРЕЗАТЬ ингредиенты]; столовые ингредиенты не существуют
@Data
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PRIVATE, force = true)
@Table("ingredients")
data class Ingredients(
@PrimaryKey
val id: String,
val name: String,
val type: Type
)
вот УДТ
@Data
@RequiredArgsConstructor
@NoArgsConstructor(access = AccessLevel.PRIVATE, force = true)
@UserDefinedType("ingredients")
data class IngredientUDT(
var name: String,
var type: Type
)
здесьConfiguration
сорт
@Configuration
@EnableCassandraRepositories
class DataInitializer: AbstractCassandraConfiguration() {
@Primary
fun cqlSession(): CqlSession {
return CqlSession.builder().build()
}
override fun getKeyspaceName(): String {
return "tacocloud"
}
override fun getEntityBasePackages(): Array<String> {
return arrayOf("sia.tacocloud")
}
@Bean
fun dataLoader(repo: IngredientsRepository): ApplicationRunner {
return ApplicationRunner {
repo.deleteAll()
repo.save(Ingredients("FLTO", "Flour Tortilla", Type.WRAP))
repo.save(Ingredients("COTO", "Corn Tortilla", Type.WRAP))
repo.save(Ingredients("GRBF", "Ground Beef", Type.PROTEIN))
repo.save(Ingredients("CARN", "Carnitas", Type.PROTEIN))
repo.save(Ingredients("TMTO", "Diced Tomatoes", Type.VEGGIES))
repo.save(Ingredients("LETC", "Lettuce", Type.VEGGIES))
repo.save(Ingredients("CHED", "Cheddar", Type.CHEESE))
repo.save(Ingredients("JACK", "Monterrey Jack", Type.CHEESE))
repo.save(Ingredients("SLSA", "Salsa", Type.CHEESE))
repo.save(Ingredients("SRCR", "Sour Cream", Type.CHEESE))
}
}
}
вот файл свойств
#Cassandra settings
spring.data.cassandra.keyspace-name = tacocloud
spring.data.cassandra.schema-action = RECREATE
spring.data.cassandra.local-datacenter = datacenter1
basic.load-balancing-policy.local-datacenter = datacenter1
spring.data.cassandra.contact-points=127.0.0.1
spring.data.cassandra.port=9042
spring.data.cassandra.username = ***
spring.data.cassandra.password = ***
что не так с этим?
1 ответ
Я решил это, удалив@Data
аннотация из классов данных ... не думал, что это будет так просто ... но это сработало.