正在为我的实习工作开发JPA兼容套件...该套件的一部分正在测试所有极端情况。

我今天在看@Embeddable
没有属性要处理。

然后我开始怀疑...

如果一个类同时用@Entity@Embeddable注释怎么办?我发现这个相关问题A class that behaves like @Entity and @Embeddable声明了JPA does not allows @Entity and @Embeddable at the same time.。但是,他是在@ElementCollection的上下文中这样做的,这是我猜测是什么会导致JPA不喜欢它(无法在其中填充非基本/可嵌入类型) 。

基本上,
根据JPA 2.0,
如果同时使用@Entity和@Embeddable注释类,是否应该引发错误?
如果没有,应该怎么办?

最佳答案

从JSR-317的第323页:

托管类将包含在持久性单元中,并且
扫描注释。应该注明
使用@ Entity,@ Embeddable或@MappedSuperclass。

这是指持久性单元中的托管类定义。基于这一点,我认为用@Entity@Embeddable@MappedSuperclass中的多个注释类是无效的。

10-04 17:06