Целевой компонент типа UDT не относится к типу персистентного объекта Cassandra. - PullRequest
0 голосов
/ 01 марта 2020

У меня есть следующий сценарий UDT:

@UserDefinedType("selected_area")
public class SelectedArea implements Serializable {

private static final long serialVersionUID = 1L;

@Column("chosen_area")
private String chosenArea;
}

@UserDefinedType("area_wrapper")
public class AreaWrapper {
@CassandraType(type = Name.LIST, userTypeName = "selected_area", typeArguments = { Name.UDT })
@Column("area")
private SelectedArea[] selectedA;
}

@Table("transport")
public class Transport {
@Column("area_wrapper")
private AreaWrapper AreaWrapper;
}

Вот схема UDT:

CREATE TYPE transport.selected_Area (chosen_Area text);
CREATE TYPE transport.Area_wrapper (area frozen<list<selected_Area>>);
CREATE TABLE transport.transport (start_area frozen<start_area>, destination frozen<destination>,
transport_state text, wrapper frozen<Area_wrapper>, PRIMARY KEY (start_area, destination));

Я получаю следующую ошибку с этой моделью:

java.lang.IllegalArgumentException: Target bean of type [Lcom.example.examplemodel.model.SelectedArea; is not of type of the persistent entity (com.example.examplemodel.model.SelectedArea)!: 

Я использовал ту же модель UDT в другом месте, и она работает, но в данном сценарии это не так. Я хочу, чтобы переменная SelectedArea была установлена ​​как сам массив, а не как список.

...