HI,
我有一个对象,它有一段与之关联的URL信息。 目前我将此URL保存在一个简单的String属性中,但java.net.URL会 为我提供额外的好处,例如检测格式错误的网址等。
另一方面,如果JPA只是为URL-Object创建了一个LOB,我认为它非常难看。有谁知道java.net.URL类型的属性将如何持久化 合规JPA提供商的数据库?
答案 0 :(得分:11)
根据JPA规范:
持久性领域或属性 一个实体可能是以下类型: Java原始类型; java.lang.String中; 其他Java可序列化类型 (包括原语的包装 types,java.math.BigInteger, java.math.BigDecimal,java.util.Date, java.util.Calendar [7],java.sql.Date, java.sql.Time,java.sql.Timestamp, 用户定义的可序列化类型,byte [], 字节[],字符[]和字符[]); 枚举;实体类型和/或 实体类型的集合;和 可嵌入的类(参见第 2.1.5)。
另外还有对收藏品的支持。但没有URL
的原始支持。然而,他们将被支持为Serializable
,我想这将导致你提到的LOB。
但您应该能够轻松规避这一点:您可以将字段中的网址设为String
,然后将String
转换为URL
的getter / setter。然后使用注释映射字段。
或相反:字段中的java.lang.URL
和要从URL
转换为String
的getter / setter,然后使用注释映射getter / setter。我认为它也有效。
答案 1 :(得分:1)