Спящий картографирование карты - PullRequest
0 голосов
/ 08 июля 2010

Исходя из NHibernate, я пытался сделать что-то подобное в Java (первый пример):

http://ayende.com/Blog/archive/2009/06/03/nhibernate-mapping-ndash-ltmapgt.aspx

У меня есть следующий код:

public class Box implements Serializable {
  private Long boxId;
  private Map<String, String> properties;

  public String getProperty(String key) {
    return properties.get(key);
  }
}

И в сопоставлении:

<map name="properties" access="field">
  <key column="boxId"/>
  <map-key column="propertyKey" type="string"/>
  <element column="propertyValue" type="clob"/>
</map>

Но когда я пытаюсь получить значение свойства с помощью метода getProperty , я получаю следующую ошибку:

java.lang.ClassCastException: $ Proxy17 нельзя привести к java.lang.String

Я пропускаю что-то очевидное здесь?Я действительно не понимаю, что такое "$ Proxy17".

Ответы [ 2 ]

1 голос
/ 08 июля 2010

Вместо этого вы можете попробовать <element column="propertyValue" type="string"/>.Hibernate обычно достаточно умен, чтобы выполнять всю работу по преобразованию сгустков в строки.

1 голос
/ 08 июля 2010

Чтобы сопоставить clob со строковым значением на карте, вам может потребоваться создать пользовательский тип пользователя ... см. Эту статью: http://simoes.org/docs/hibernate-2.1/76.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...