我一直将鼠标悬停在万维网站点上的所有可能链接上,试图找到为什么不能将@GeneratedValue与@EmbeddedId或@IdClass(即复合PK)一起使用的原因。原因是您不能。这里提供的解释可能会帮助您感觉更好:
JAVA.NET/GLASSFISH
复合PK基于分配而不是基于生成。因此,任何@GeneratedValue东西都不应该与它们一起使用。我的项目也遇到了问题,我认为没有别的办法,除了:
如果您知道@GeneratedValue
ID在域(例如,数据库)的上下文中始终是唯一的,则无需使用复合PK并进行一些内部检查以确定记录的唯一性(即持久性对象集合) 。



