【发布时间】:2019-03-25 05:24:40
【问题描述】:
我有以下实体
@Data
@EqualsAndHashCode(callSuper = false)
@Entity
@Table(name = "REF_CLIENT")
@IdClass(RefClientID.class)
@NamedNativeQueries({@NamedNativeQuery(name = "RefClient.updateByClicincli", query = "UPDATE REF_CLIENT rc "
+ "SET rc.clicexcli = :clicexcli , rc.cliidclient=:cliidclient ,"
+ "rc.cliemail=:cliemail, rc.clitypcli=:clitypcli ," + "rc.clietatcli=:clietatcli"
+ " WHERE rc.clicincli = :clicincli ;")})
public class RefClient extends CommonData implements Serializable {
private static final long serialVersionUID = 4763218211813908401L;
/**
* N X NUMBER Code interne client
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "CLICINCLI", unique = true, updatable = false, nullable = false)
private Long clicincli;
/**
* N X VARCHAR2(13) Code externe client
*/
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(name = "CLICEXCLI", unique = true, length = 13, nullable = false)
private String clicexcli;
ID类如下
@Data
public class RefClientID implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1932584805198196159L;
/**
* N X VARCHAR2(13) Code externe client
*/
private String clicexcli;
/**
* N X NUMBER Code interne client
*/
private Long clicincli;
}
日志中生成的DDL是
Hibernate: 创建表 ref_client (cliexcli varchar(13) not null auto_increment, clicincli bigint not null, datcre DATE DEFAULT CURRENT_DATE not null
如您所见,VARCHAR 无法自动递增如何解决此问题?
我尝试删除标识策略,ddl 工作正常,但没有 clicincli 的 auto_increment,如果我重用它,它将在字符串字段 cliexcli 中生成 auto_increment,并且在 Long 字段中将没有 auto_increment (clicincli)
【问题讨论】:
标签: java mysql sql hibernate jpa