2011-08-05 4 views
0

私はインターフェイスと、そのインターフェイスを実装する3つのクラスを持っているので、私はそれらをデータベースに保存するためにHibernateフレームワークを使うべきです。問題は、3つのクラスのいずれかに応じて異なるテーブルを作成する必要があることです。たとえば、HibernateでJavaインターフェイスを使用するには?

interface Vehicle; 
class Truck; 
class Bus; 
class Motorbike; 

Vehicle vehicle = new Truck(); // In that case, Truck table should be generated 
session.save(vehicle); // In that case, Truck table should be generated 

Vehicle vehicle = new Bus(); 
session.save(vehicle); // In that case, Bus table should be generated 

Vehicle vehicle = new Motorbike(); 
session.save(vehicle); // In that case, Motorbike table should be generated 

注釈でこれを行うにはどうすればよいですか?どんな助けもありがとう。 ありがとうございます。

+0

を使用してください。休止状態の他のクラスと同じように使用してください。ここでは何も変わっていないようです。 –

答えて

2

Hibernateは実行時にクラスを検査するので、オブジェクトをクラスで参照するのかインターフェイスで参照するのかは関係ありません。

session.save()を呼び出すとテーブルが作成されないことに注意してください。既存のテーブルにレコードを挿入します。休止状態でテーブルを作成する場合は、hibernate.hbm2ddl.auto

+1

抽象クラスの先頭に "@MappedSuperclass"を追加して解決しました。ありがとうございました。 – prgrmmr

+1

あなたは問題として私が理解できなかったことを解決しました。次回は質問の説明に正確な問題を含める – Bozho

関連する問題