2017-11-24 10 views
0

現時点では、同じインターフェイスで異なるオブジェクトのOneToMany ArrayListが必要な問題があります。例えばインターフェイスを持つHibernate OneToMany

:私はちょうどそれだけProductインタフェースを実装することによって、他の製品を追加しやすいようにしたい

@Entity 
@Table(name = "store") 
public class Store { 
    @OneToMany(mappedBy = "store") 
    private List<Product> allProducts; 
} 

public interface Product { 
    String getProductCode(); 
} 

@Entity 
@Table(name = "car") 
public class Car implements Product{ 
    int wheels; 
} 

@Entity 
@Table(name = "computer") 
public class Computer implements Product{ 
    String cpu; 
} 

。しかし、休止状態は私にこのエラーを与える:'One To Many' attribute value type should not be 'Product'

私はこの問題についていくつかの記事を見つけましたが、かなり古くなっています(5歳以上)。彼らはすべて、これは当時不可能であったことで終わった。

この問題を解決するために過去5年間に機能を追加したのですか、同じOneToManyリレーションで複数のオブジェクトを追加する良い方法がありますか?私は新製品を追加するたびにStoreクラスを更新したくありません。

+1

インターフェイスの代わりにマップされたスーパークラスを使用するとどうなりますか?あなたはできる ? – gtosto

+0

@gtostoええ、私はできると思います。しかし、私はそれを最善の方法でやろうとしています。私の状況では、インターフェイスが優れています。 – klokklok

答えて

1

Did hibernate add any functionality in the last 5 years to solve this problem or are there any other good ways of adding multiple objects in the same OneToMany relation? I don't want to update my Store class every time I add a new product.

は、私は(または少なくともそれにマッピングされたスーパークラスを作るために)エンティティへProductを促進するために、あなたのニーズにマッチするための最良の方法だと思います。とにかく、@Any注釈はあなたの状況に役立ちます。これは多態性関連のモデル化に使用されます。

+0

私はあなたの答えを完了していないと思いますか? 'Product'を....に促進する – klokklok

+0

lol申し訳ありませんが、PCクラッシュ:) – gtosto

関連する問題