Java 如何在JPA列中使用自定义类型?
我有一门课:Java 如何在JPA列中使用自定义类型?,java,hibernate,jpa,Java,Hibernate,Jpa,我有一门课: public class Email { private String name; private String domain; public String toString() { return name + "@" + domain; } } 我想在JPA专栏中使用它: @Entity public class User { @Id private Integer id; private Email email; } Hibernate是
public class Email {
private String name;
private String domain;
public String toString() {
return name + "@" + domain;
}
}
我想在JPA专栏中使用它:
@Entity
public class User {
@Id private Integer id;
private Email email;
}
Hibernate是这么说的:
org.hibernate.MappingException: Could not determine type for: com.XXX.Email
如何让它理解我的自定义类型。我认为它非常简单,但在文档中找不到。你可以将电子邮件作为一个实体,它会工作……但它非常无效
@Entity
public class Email {
...
}
或者你也可以从电子邮件
切换到字符串
,这样就可以了。(无论如何,包装一根绳子有什么意义?)
您可以在Hibernate中阅读自定义用户类型(因为您标记了它)
或者你可以像波佐所说的那样使用
@embebebed
。嗯,有很多方法:
- 用
注释@embeddeble
类,并具有:电子邮件
@Embedded private Email email;
- 声明自定义值类型-请参阅(使用
)@type