У меня есть таблица fruit с четырьмя столбцами id, name, color, shape.
записей в таблице будут:
1, apple, red, round
2, banana, yellow, long
3, tomato, red, round
4, orange, orange, round
Теперь я создал класс сущности Fruit, сопоставленный сТаблица выше.
@Entity
@Table(name="fruit")
public class Fruit implements Serializable {
@Id
@Column(name="ID")
String id;
@Column(name="NAME")
String name;
@Column(name="COLOR")
String color;
@Column(name="SHAPE")
String shape;
//getters/setters goes here
}
В моем классе DAO код:
String myQuery = "Select f.shape, f.name from Fruit f where f.shape = :shape";
Query query = this.em.createQuery(myQuery);
query.setParameter("shape", "round");
Как очевидно, выполнение запроса выше вернет 3 строки.
У меня есть простой класс TO FruitSearchTO
class FruitSearchTO
{
String shape;
String name;
//getters/setters here
}
Это TO соответствует строкам, возвращаемым моим запросом.
Но в моем DAO выполняется что-то вроде:
List<FruitSearchTO> fruitList = new ArrayList<FruitSearchTO>();
fruitList = query.getResultList();
вызывает исключение java.lang.ClassCastException: [Ljava.lang.Object;несовместим с FruitSearchTO]
Куда я иду не так и как это можно решить?