2

次のようなエンティティがあります。

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、エンティティではないので、それも機能しません。

4

0 に答える 0