1. hibernate在数据库生成hibernate_sequence表
使用数据库:MySQL
数据库方言:spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL55Dialect
使用注解:@GeneratedValue(strategy = GenerationType.AUTO)
解决办法:
方法一:
将@GeneratedValue(strategy = GenerationType.AUTO)改为@GeneratedValue(strategy = GenerationType.IDENTITY)
方法二:
在application.properties文件中,增加spring.jpa.hibernate.use-new-id-generator-mappings= false
参考文章:
2. 将创建时间、修改时间放在父类中
父类:
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
@Data // lombak
public abstract class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "MODIFY_DATE")
@LastModifiedDate
private Date modifyDate;
@Column(name = "CREATE_DATE")
@CreatedDate
private Date createDate;
@Override
public String toString() {
return ReflectionToStringBuilder.toString(this);
}
}
启动类中增加注解:@EnableJpaAuditing
另一种方式:
@Column(name="CREATE_DATE",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false,updatable = false)
@Generated(GenerationTime.INSERT)
private Date createTime;
本文探讨了Hibernate在MySQL数据库中生成hibernate_sequence表的问题及解决方案,包括更改ID生成策略和禁用新ID映射。同时介绍了如何通过基类和注解实现自动记录实体的创建时间和修改时间。

1596

被折叠的 条评论
为什么被折叠?



