2015-11-17 4 views
2

Я создал модель texo от EMF.ArrayList не может быть случайным для установки в спящем режиме с использованием созданных Texo моделей

Ниже приводится код

try{ 

      Session session = factory.openSession(); 
       Transaction tx = null; 
       Integer employeeID = null; 
       try{ 
       tx = session.beginTransaction(); 
       Country country = new Country(); 
       country.setCode("PK");; 
       country.setCountry("PAKISTAN"); 
       System.out.println((Integer) session.save(country)); 
       //^ HERE THE ERROR COMES 

       tx.commit(); 
       }catch (HibernateException e) { 
       if (tx!=null) tx.rollback(); 
       e.printStackTrace(); 
       }finally { 
       session.close(); 
       } 

      }catch (Throwable ex) { 
      System.err.println("Failed to create sessionFactory object." + ex); 
      throw new ExceptionInInitializerError(ex); 
      } 

Когда я пытаюсь добавить объект страны с или без места, я получаю ошибку

Не удалось создать SessionFactory object.java.lang.ClassCastException: Java .util.ArrayList нельзя отбрасывать на java.util.Set

Модель создана Texo, имеет список и простой генератор и сгенерированный сеттер.

Я проверил это link., но я не нашел ответа.

COUNTRY.java

import java.util.ArrayList; 
import java.util.List; 
public class Country { 
    private int iD = 0; 
    private String country = null; 
    private String code = null; 
    private List<Location> locations = new ArrayList<Location>(); 
    public int getID() { 
     return iD; 
    } 
    public void setID(int newID) { 
     iD = newID; 
    }  
    public String getCountry() { 
     return country; 
    }  
    public void setCountry(String newCountry) { 
     country = newCountry; 
    }  
    public String getCode() { 
     return code; 
    }  
    public void setCode(String newCode) { 
     code = newCode; 
    }  
    public List<Location> getLocations() { 
     return locations; 
    } 
    public void setLocations(List<Location> newLocations) { 
     locations = newLocations; 
    } 
    @Override 
    public String toString() { 
     return "Country " + " [iD: " + getID() + "]" + " [country: " 
       + getCountry() + "]" + " [code: " + getCode() + "]"; 
    } 
} 
+0

Вы можете разместить полную трассировку стека ? И ваша страна? –

+0

@bruno_cw вы можете проверить, что я разместил детали. –

ответ

2

Как обсуждалось в Texo, я должен генерировать SET вместо СПИСКА в ява субъектов, чтобы работать с Hibernate ,

Так что мне пришлось настроить TEXO для этого для всех объектов.

  1. Создать модель аннотаций.

  2. Найти объект (местоположения) и добавить новую аннотацию. Гото его свойства и установить USE LIST = FALSE

  3. Сформировать модели TEXO и все необходимые объекты будут изменения из списка Настройка

enter image description here

-1

пожалуйста, попробуйте изменить Set<Location> sLoc = new HashSet<Location>(locations); к List<Location> sLoc = new ArrayList<Location>(locations);. U имеют ур locations как массив и sLoc, как HashSet, так что дает литье исключение .. Надеюсь, что это решит вашу проблему

+0

Я попытался изменить его. но все еще есть исключение. java.util.ArrayList не может быть добавлен в java.util.Set –

+0

Почему вы хотите, чтобы ваши результаты были установлены? Наборы используются, когда нам нужен отдельный экземпляр объекта, но в списке есть несколько экземпляров. Вы можете попробовать удалить «Set sLoc = new HashSet (локации);' –

+0

Я проверил, удалив строку. Также я попытался удалить местоположение, в котором я узнал, даже я добавляю объект отдельной страны без какого-либо места, я получаю ту же ошибку –

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

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