如下配置,使用联合主键[DEPT_ID, USER_ID], 在添加新的User时,useri_id并没有使用序列,这是为什么???
@Embeddable
public static class UserPK implements Serializable { /**
*
*/
private static final long serialVersionUID = 1645336921302505210L;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DEPT_ID", referencedColumnName = "DEPT_ID", updatable = false)
private Department dept;
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_USER_ID")
@SequenceGenerator(name="SEQ_USER_ID", sequenceName="SEQ_USER_ID")
@Column(name = "USER_ID", length = 17, updatable = false)
private String userId;
@Embeddable
public static class UserPK implements Serializable { /**
*
*/
private static final long serialVersionUID = 1645336921302505210L;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DEPT_ID", referencedColumnName = "DEPT_ID", updatable = false)
private Department dept;
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_USER_ID")
@SequenceGenerator(name="SEQ_USER_ID", sequenceName="SEQ_USER_ID")
@Column(name = "USER_ID", length = 17, updatable = false)
private String userId;
google了一下, 老外也遇到过类似问题
好像sequnce 在 Embeddable 中是 失效的
@SequenceGenerator(name="SEQ_USER_ID", sequenceName="SEQ_USER_ID")是放在类上的,而不是放在field上的,你去改一改看看。
你用的是 @Embeddable 方式的么??