В настоящее время я загрузить CSV-файл, который содержит следующие столбцы к Google App Engine хранилище данных:ClassCastException при выполнении запроса на выборку
id, roleName, eggName, highestAllTimePrice, lowestAllTimePrice, averagePrice
и результат таблицы, когда я иду на локальном хосте: 8888/_ah/админ/хранилищу является следующим:
Key, Write Ops, ID/Name, averagePrice, eggName, eggNumber, highestAllTimePrice, lowestAllTimePrice, roleName
Я получаю все данные из таблицы следующим образом:
public String GetData(final ModelMap model)
{
EntityManager em = EMF.get().createEntityManager();
Query q = em.createQuery("SELECT s FROM Egg s");
List<Egg> eggs = new ArrayList<Egg>(q.getResultList());
model.addAttribute("eggs", eggs);
return "index";
}
Entity
@Entity
public class Egg {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;
private int eggNumber;
private String roleName;
private String eggName;
private double highestPrice;
private double lowestPrice;
private double averagePrice;
// getters setters
}
Но когда я запускаю этот запрос, я получаю эту ошибку:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
at com.google.appengine.datanucleus.FetchFieldManager.fetchDoubleField(FetchFieldManager.java:140)
at org.datanucleus.state.AbstractStateManager.replacingDoubleField(AbstractStateManager.java:2256)
at Entity.Egg.jdoReplaceField(Egg.java)
at Entity.Egg.jdoReplaceFields(Egg.java)
Проблема, я не знаю, почему это преобразование типов? Я неправильно определил класс сущности?
Да, вы правы, они были сохранены как строки, необходимо выяснить, как определить их типы в файле .yml. – Michael