У меня есть следующий сценарий 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 была установлена как сам массив, а не как список.