2013-08-26 11 views
5

Próbuję zapisać listę obiektów klas do bazy danych ormlite, ale daje błąd, java.lang.IllegalArgumentException: Żadne pola nie mają adnotacji DatabaseField w klasie java.util .ArrayListJak przechowywać listę w lubmlite bazy danych

mój kod jest

@DatabaseTable 
public class ManageModelDetails { 

@DatabaseField(generatedId = true) 
private int id; 

@DatabaseField(foreign = true, foreignAutoRefresh = true) 
private ArrayList<ModelDetails> listModelDetails; 

// =============================================== 
public ManageModelDetails() { 
    super(); 
} 

// =============================================== 

public ManageModelDetails(int id, ArrayList<ModelDetails> listModelDetails) { 
    super(); 
    this.id = id; 
    this.listModelDetails = listModelDetails; 
} 

// =============================================== 

public void setId(int id) { 
    this.id = id; 
} 

public int getId() { 
    return id; 
} 

public void setModelList(ArrayList<ModelDetails> listModelDetails) { 
    this.listModelDetails = listModelDetails; 
} 

public ArrayList<ModelDetails> getModelList() { 
    return listModelDetails; 
} 

} 

Odpowiedz

6

Myślę, że trzeba użyć Kolekcje obce. Spójrz tutaj:

+0

To prawda, jeśli kolejność na liście nie ma znaczenia (pytanie wspomina ArrayList). Jeśli tak, to lista tablic powinna być przechowywana w niestandardowy sposób. – Christine

2

Jeśli chcesz zapisać ArrayList obiektów do ORMLite najprostszy sposób to:

@DatabaseField(dataType = DataType.SERIALIZABLE) 
private SerializedList<MyObject> myObjects; 

i dostać mój lista obiektów:

public List<MyObject> getMyObjects() { 
    return myObjects; 
} 

i tu jest SerializedList:

public class SerializedList<E> extends ArrayList<E> implements Serializable { 
} 
+0

co to jest SerializedList? z której biblioteki? – NickUnuchek

+0

w rzeczywistości była to tylko ArrayList, która implementuje Serializable, zobacz zaktualizowaną odpowiedź –

+0

ArrayList już jest Serializable – NickUnuchek

Powiązane problemy