我可以在唯一约束上使用带有@Id的hibernate实体而不是oracle数据库上的主键吗?它也将符合JPA标准吗?
答案 0 :(得分:1)
听起来有点奇怪,但似乎有可能: http://www.objectdb.com/api/java/jpa/Id:
应用Id注释的字段或属性应为以下类型之一:任何Java基元类型;任何原始包装类型;串; java.util.Date; java.sql.Date; java.math.BigDecimal的; java.math.BigInteger。
但要注意: (1)例如在Oracle UNIQUE中并不意味着NOT NULL,你必须自己确保这一点。 (2)您不能在数据库中使用FOREIGN KEY约束。 (3)如果要插入新实体(不仅要读取现有实体),还必须注意Id生成(http://www.objectdb.com/api/java/jpa/GeneratedValue)。 (4)如果插入新实体,则必须为DB id生成一个值。
这只是我脑海中浮现的一些缺点......