次のようなエンティティがあります。
public class MyEntity implements Serializable {
private static final long serialVersionUID = 1L;
// some fields such as Long, String etc.
private java.util.Properties properties;
// getters, setters, equals, hashCode, toString ...
}
XML エンティティ マッピング
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd">
<persistence-unit-metadata>
<persistence-unit-defaults>
<access>FIELD</access>
</persistence-unit-defaults>
</persistence-unit-metadata>
<entity class="com.package.of.my.MyEntity">
<table name="my_entity">
<unique-constraint name="uniquefield">
<column-name>uniquefield</column-name>
</unique-constraint>
</table>
<!-- some named queries -->
<attributes>
<id name="id"><generated-value/></id>
<!-- some <basic name="..."> columns -->
<!-- What to put here for mapping the properties field? -->
<!-- other mappings (one-to-one, one-to-many, many-to-many) -->
</attributes>
</entity>
<!-- other entity mappings -->
</entity-mappings>
java.util.Properties
オブジェクトを理想的にマッピングするにはどうすればよいですか?
使用<basic name="properties"/>
するとエラーが発生します: 属性を解決できません。ただし、データベース テーブルに BLOB 列を追加します。
Properties
キーと値で動作しString
ますが、実際には拡張しますHashtable<Object,Object>
(これは を実装しますMap<Object,Object>
)。それは一対多のように見えます。しかしObject
、エンティティではないので、それも機能しません。