Я видел много примеров Kundera, где объект, являющийся хранилищем, довольно прост. У вас есть что-то вроде Car.class, и он содержит пару переменных String, может быть, int сопоставляется с использованием аннотации @Column. Я даже видел некоторые переменные List, Set и Map, а также cqlsh для создания столбца этих типов.Может ли Kundera API обрабатывать MyObj внутри MyParentObj при использовании с Cassandra
То, что я еще не видел, - это настраиваемый объект, который я создал внутри объекта, и как это будет представлено в БД Cassandra.
Например:
public Class ContainerShip {
@Column(name="container")
Container myContainer;
}
public Class Container {
@Column(name="containerName)
String containerName;
}
Могу ли я хранить контейнеровоза в Кассандре, используя Кундера с em.persist (myShip)?
Если я могу, как бы выглядел cqlsh для создания столбца «контейнер»?
Интересно. Итак, каков был бы тип столбца в Cassandra для контейнера? – Justin
Он будет хранить имя контейнера в качестве столбца в семействе столбцов контейнера. В принципе, если вы хотите внедрить пользовательский объект или коллекцию объекта, это означает добавление большего количества столбцов (широких строк) или создание ссылок (то же, что и RDBMS-ассоциации). Kundera предоставляет как способы встраивания пользовательского объекта в суперколонку, так и составной/составной ключ. –
Какую версию Kundera вы используете? 2.8.1, похоже, не работает, хотя я принял ваш пример немного дальше. Я попытался сделать это @Column (name = "location") @ Встраиваемый закрытый список контейнеров. Создал столбец в cql как «список местоположений ». Получил NPE (после первого комментирования kundera.ddl.auto.prepare) в PropertyAccessorHelper Kundera. Это сложный случай, но я не могу рекомендовать Cassandra/Kundera над SQLServer/hibernate, если я не могу сопоставить список других объектов ;-) –
Justin