JPA属性java.net.URL
问题内容:
嗨,
我有一个对象,该对象具有与之关联的URL信息。目前,我将此URL保存在一个简单的String属性中,但是java.net.URL将为我提供其他好处,例如检测格式错误的URL等。
另一方面,如果JPA只是为URL对象创建一个LOB,我会觉得很丑。有谁知道兼容的JPA提供者将如何将类型java.net.URL的属性持久化到数据库中?
问题答案:
根据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,用户定义的可序列化类型,byte [],Byte
[],char []和Character []);枚举 实体类型和/或实体类型的集合;和可嵌入的类(请参阅第2.1.5节)。
加上对收藏的支持。但没有原始支持URL
。但是Serializable
,它们将被支持为,我猜这将导致您提到的LOB。
但是您应该能够轻松地规避这一点:您可以将URL作为String
字段中的a和将getter /
setter转换为from的String
方法URL
。然后,将带有注释的字段映射。
或相反:java.lang.URL
在字段中,将getter / setter从转换URL
为String
,然后将getter /
setter与注释映射。我认为它也可以。