当前位置: 代码迷 >> J2EE >> [高分]请教JPA中使用UUID可以用作复合主键吗
  详细解决方案

[高分]请教JPA中使用UUID可以用作复合主键吗

热度:570   发布时间:2016-04-22 02:58:01.0
[高分求助]请问JPA中使用UUID可以用作复合主键吗?
近期在一个项目中使用了 Hibernate3 + Spring + Jpa `1.0 的框架技术

其中有一个复合键中的实体中打算使用 UUID生成其中的一个键,实体代码如下

Java code
@Entity@IdClass(FolderPrimaryKey.class)@Table(name = "folder")public class FolderEntity implements Serializable {    private static final long serialVersionUID = 1L;    @Id    @GeneratedValue(generator = "system-uuid")    @GenericGenerator(name = "system-uuid", strategy = "uuid")    @Column(name = "folderId", length = 32, nullable = false)    private String folderId;    @Id    @Column(name = "userId", length = 32, nullable = false)    private String userId;


由于只有一个主键 folderId是 uuid 由hibernate框架提供自动生成的,另一个主键(同时也是外键) userId 则是手动赋值的

但是在进行插入表信息的时候 总是提示 folderId字段不能插入 null 值

请问是用了UUID就不可以用复合主键的原因,还是我的实体配置有问题!盼高手解答!

------解决方案--------------------
http://blog.sina.com.cn/s/blog_6988f95a0100t7xx.html

看一下这个,讲的很详细

有关jpa复合主键的
------解决方案--------------------
@Id
@GenericGenerator(name = "generator", strategy = "uuid.hex")
@GeneratedValue(generator = "generator")
@Column(name = "ID", unique = true, nullable = false, length = 32)
  相关解决方案