正在为我的实习工作开发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
中的多个注释类是无效的。