【发布时间】:2014-12-07 17:23:17
【问题描述】:
如何映射和更改实际包装类的字段。
private UserId uid = new UserId();
UserId 是一个包含在许多类中的类。它将字符串作为 Id 但它在数据库中的等效字段很长。
当我注释它时,JPA 抱怨字段的类型和可访问性。
我需要告诉 JPA 使用注释
如何访问最终将被映射的实际字段
明明不知道怎么把string转成long,怎么办?
我是 JPA 和 Java 的新手,并且在字段上使用注释。
谢谢
这里是代码
UserId.java
public class UserId extends CustomString {
public UserId(String value) {
super(value);
}
CustomString.java
public abstract class CustomString extends ParentDomain {
private String value;
public CustomString(String value) {
if (value == null) {
throw new NullStringException(this.getClass().getName());
}
this.value = value;
}
//Getters and Setters
@Override
public String toString() {
return this.value;
}
}
ParentDomain.java
public abstract class ParentDomain {
// nothing
}
到目前为止我做了什么
从 Long 转换为字符串后,我创建了返回类型为 Long 返回值的 getter setter。
【问题讨论】:
-
我们需要看更多我认为的代码,比如 UserId 类是什么样子的?
-
JPA 提供 AttributeConverter,因此您可以映射任何类型。那么使用它有什么问题呢?
-
@NeilStockton 感谢您的评论。我会尝试创建一个。我不知道这样的事情。
-
@omega_cancer 请注意,它仅存在于 JPA 2.1 中,因此请检查您使用的是哪个
标签: java hibernate jpa jpa-2.0