2014-01-14 2 views
0

Я видел много примеров 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 для создания столбца «контейнер»?

ответ

2

Вы можете вставлять контейнерный объект в качестве внедряемого объекта.

@Entity Открытый класс контейнеровоза {

@Column(name="container") 
@Embedded 
Container myContainer; 

}

@Embeddable Открытый класс Контейнер {

@Column(name="containerName) 
String containerName; 

}

+0

Интересно. Итак, каков был бы тип столбца в Cassandra для контейнера? – Justin

+0

Он будет хранить имя контейнера в качестве столбца в семействе столбцов контейнера. В принципе, если вы хотите внедрить пользовательский объект или коллекцию объекта, это означает добавление большего количества столбцов (широких строк) или создание ссылок (то же, что и RDBMS-ассоциации). Kundera предоставляет как способы встраивания пользовательского объекта в суперколонку, так и составной/составной ключ. –

+0

Какую версию Kundera вы используете? 2.8.1, похоже, не работает, хотя я принял ваш пример немного дальше. Я попытался сделать это @Column (name = "location") @ Встраиваемый закрытый список контейнеров. Создал столбец в cql как «список местоположений ». Получил NPE (после первого комментирования kundera.ddl.auto.prepare) в PropertyAccessorHelper Kundera. Это сложный случай, но я не могу рекомендовать Cassandra/Kundera над SQLServer/hibernate, если я не могу сопоставить список других объектов ;-) – Justin

 Смежные вопросы

  • Нет связанных вопросов^_^