Hibernate を使用して、次のようなオブジェクトを保存/ロードしようとしています (これらはアウトラインです。簡潔にするためにアクセサーを省略しました) Item.hbm.xml
。
class Item {
String name;
Vec3d position;
}
class Vec3d {
double x;
double y;
double z;
}
データベース スキーマ:
create table item (
item_id bigint primary key,
name varchar(64) not null,
x double not null,
y double not null,
z double not null
);
Item.hbm.xml
これまでのところ、基本的には次のようになります。
...
<class name="Item" table="item">
<id name="id" column="item_id">
<generator class="sequence" />
</id>
<property name="name" type="string" />
<!-- ??? How do I map the position ??? -->
</class>
...
位置ベクトルを単一のオブジェクトとして取得する方法に関するドキュメントは見つかりませんが、Item クラスと同じ行にフィールドとして格納されます。それを別のテーブルに格納して、アイテムを読み取るためだけに結合するのは無駄に思えます。
答えを見つけるのに苦労したのは、Hibernate がこのスキーマに使用する用語を知らないことが原因である可能性があります。