ORMLite does not know how to store interface com.j256.ormlite.dao.ForeignCollection for field

  • Antworten:3
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 359

15.02.2016, 17:56:10 via Website

Hallo,
ich versuche mich gerade etwas mit ORMLite auseinander zusetzten und bekommen einen Fehler den ich nicht gelöst bekommen.

Folgendes versuche ich (eig. eine Standardaufgabe):

Ich habe 2 Klassen, die DB-Objekte wiederspiegeln.

Dies ist zum einen:

@DatabaseTable(tableName = "schule")
public class Schule {

    @DatabaseField(generatedId = true)
    private int id;

    @DatabaseField
    private String name;
    @DatabaseField
    private String Anschrift;
    .
    .
    .

    @ForeignCollectionField
    private ForeignCollection<Room> rooms;

    public Schule(){}

//jedemenge getter und setter
}

Zum anderen die Klasse Room:

@DatabaseTable(tableName = "room")
public class Room{

    public static final String COMMAND_ID_FIELD_NAME = "schule_id";

    @DatabaseField(generatedId = true)
    private Long id;

    @DatabaseField
    private String name;

    @DatabaseField
    private String stockwerk;

    @DatabaseField(foreign = true, foreignAutoRefresh = true, columnName = COMMAND_ID_FIELD_NAME)
    private Schule schule;

    public Room(){}

//jedemenge getter und setter
}

Wie man sieht hat eine Schule mehrere Räume.
Heißt : eine 1 zu M Beziehung.

Leider bekomme ich bei Ausführen ein Runtimexption:
ORMLite does not know how to store interface com.j256.ormlite.dao.ForeignCollection for field rooms. Use another class or a custom persister.

Dies wirft er bei meiner Helper Class in dem Methodenaufruf:

schuleRuntimeDao = getRuntimeExceptionDao(Schule.class);`

Ich verstehe leider nicht wiso... gescheige denn wie ich es beheben kann.
Habe auch schon google gequält.
Denke es ist ein einfacher Fehler vielleicht kann mir ja jemand helfen...

Vielen Dank schon mal
Grüße
Fasibio

— geändert am 15.02.2016, 17:56:25

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

15.02.2016, 18:19:25 via Website

Oh, mal was neues :)

So wie ich das verstehe muss deine Klasse Room das interface "com.j256.ormlite.dao.ForeignCollection" implementieren, damit die ORMLite Klassen damit klarkommen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 359

17.02.2016, 08:25:34 via Website

Hi,
wie das so oft ist man sucht tagelang nach einer Lösung und kurz nachdem man sich entschließt die Community zu fragen, findet man die Lösung.

Hier ne kurz übersicht.
Wenn interesse besteht schreib ich au ein kleines Tutorial...

Die Lösung war:

In der Schule:

 @ForeignCollectionField(eager = true)
    private ForeignCollection<Room> rooms; 

Desweiteren habe ich im Helper die Conig resource aus dem super aufruf genommen.

Danke für die Hilfe.
Gruß

Antworten
  • Forum-Beiträge: 359

18.02.2016, 10:34:35 via Website

Wenn interesse besteht schreib ich au ein kleines Tutorial...
Anscheindend besteht kein Interesse somit setzt ich das ganze erledigt ;)

Antworten

Empfohlene Artikel