Привет,
У меня есть объект, который имеет часть Информации URL, связанной с ним. В настоящее время я сохраняю этот URL в свойстве простой строки, но java.net. URL предоставил бы мне дополнительных положительных героев, таких как обнаружение уродливых URL и т.д.
С другой стороны, я считал бы это очень ужасным, если бы JPA просто создал LOB для Объекта URL. Делает любой знает как свойство типа java.net. URL будет сохранен к базе данных совместимыми поставщиками JPA?
Согласно спецификации JPA:
Постоянные поля или свойства объекта могут быть следующих типов: примитивные типы Java; java.lang.String; другие сериализуемые типы Java (включая оболочки примитивных типов , java.math.BigInteger, java.math.BigDecimal, java.util.Date, java.util.Calendar [7], java.sql.Date, java.sql.Time, java.sql.Timestamp, user- определенные сериализуемые типы, byte [], Byte [], char [] иCharacter []); перечисления; типы сущностей и / или коллекции типов сущностей; и встраиваемые классы (см. раздел 2.1.5).
Плюс поддержка коллекций. Но никакой примитивной поддержки URL
. Однако они будут поддерживаться как Serializable
, что, я думаю, приведет к LOB, как вы упомянули.
Но вы сможете легко обойти это: вы можете иметь URL-адрес в виде String
в поле и геттер / сеттер, которые конвертируют из String
в URL.
хотя. Затем вы сопоставляете поле с аннотацией.
Или наоборот: java.lang.URL
в поле и геттер / сеттер для преобразования из URL
в String
, затем вы сопоставляете геттер / сеттер с аннотацией. Думаю, это тоже работает.