hibernate联合主键导致创建表失败
最近在做项目时碰到了使用hibernate联合主键的情况。在做Unit testing的时候我希望hibernate帮我自动创建表,可是却发现总是创建失败。我使用的是mysql 5.1做为数据库,联合主键代码如下
?
/*** Primary key class*/@Embeddablepublic class PersonPK implements Serializable{@Column(name="name", columnDefinition="varchar(50)")private String name;@Column(name="email", columnDefinition="varchar(50)")private String email;@Column(name="address", columnDefinition="varchar(50)")private String address;@Column(name="id", columnDefinition="varchar(50)")private String id;.......}
?
这样的话hibernate生成ddl的时候就会使用varchar(50)来代替,从而避免联合主键过长的问题。当然如果其他DBMS中没有这个限制的话可以不用做修改,或根据相应限制做对应修改。
1 楼 aa87963014 2011-08-18 我实在是想不到有什么项目/场景需要用到联合主键的 2 楼 fflame 2011-08-18 aa87963014 写道我实在是想不到有什么项目/场景需要用到联合主键的"行政区划中各种农产品,各年产量及量纲"
理论上说是需要设置联合主键的吧? 3 楼 runanli 2012-01-10 事实上许多BI项目都会用到联合主键的。