2

3 つの単純な ORM クラス (Java + ormlite) があります。

@DatabaseTable
public class A extends BaseDaoEnabled {
    A(){
        bs = new ArrayList<B>();
    }

    @DatabaseField(generatedId=true)
    int id;

    @ForeignCollectionField(eager=true)
    public Collection<B> bs;
}

B

@DatabaseTable
public class B extends BaseDaoEnabled {
    B(){}

    @DatabaseField(generatedId=true)
    int id;

    @DatabaseField(foreign=true)
    A a;
}

C

@DatabaseTable
public class C extends A{
    @DatabaseField
    int x;
}

A は 1 対多の B. C は A を拡張します。

私は書くことができます

B b = new B();
b.a = new C();

しかし、クエリを評価すると例外がありました:

java.sql.SQLException: Foreign collection class B for field 'bs' column-name does not contain a foreign field of class C

拡張クラスのオブジェクトにリンクを設定するにはどうすればよいですか (すべてのサブクラスにプロパティは必要ありません)。

4

0 に答える 0