在使用Spring-JPA的ddl-auto创建数据库表时,有些实体被创建为表,而有些表没有被创建
Spring-JPA实体(2):enter image description here
application.properties
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.open-in-view=false
由Spring-jpa enter image description here创建的表
有两个实体,所以我认为应该创建两个表,但只有一个表名为:tbl_app_block
1.我添加了@EntityScan(basePackages = {“com.example.demo.entity.**"})
1.我通过IDEA数据库enter image description here生成实体
实体1
@Entity
@Table(name = "tbl_app_auth", schema = "hoe_common", catalog = "")
public class TblAppAuthEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@Column(name = "app_id", nullable = false, length = 50)
private String appId;
@Basic
@Column(name = "app_secret", nullable = true, length = 100)
private String appSecret;
@Basic
@Column(name = "app_name", nullable = true, length = 100)
private String appName;
@Basic
@Column(name = "app_token", nullable = true, length = 100)
private String appToken;
@Basic
@Column(name = "create_time", nullable = true)
private Timestamp createTime;
@Basic
@Column(name = "update_time", nullable = true)
private Timestamp updateTime;
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public String getAppSecret() {
return appSecret;
}
public void setAppSecret(String appSecret) {
this.appSecret = appSecret;
}
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getAppToken() {
return appToken;
}
public void setAppToken(String appToken) {
this.appToken = appToken;
}
public Timestamp getCreateTime() {
return createTime;
}
public void setCreateTime(Timestamp createTime) {
this.createTime = createTime;
}
public Timestamp getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Timestamp updateTime) {
this.updateTime = updateTime;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TblAppAuthEntity that = (TblAppAuthEntity) o;
return Objects.equals(appId, that.appId) && Objects.equals(appSecret, that.appSecret) && Objects.equals(appName, that.appName) && Objects.equals(appToken, that.appToken) && Objects.equals(createTime, that.createTime) && Objects.equals(updateTime, that.updateTime);
}
@Override
public int hashCode() {
return Objects.hash(appId, appSecret, appName, appToken, createTime, updateTime);
}
}
实体2
@Entity
@Table(name = "tbl_app_block", schema = "hoe_common", catalog = "")
public class TblAppBlockEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@Column(name = "block_id", nullable = false)
private int blockId;
@Basic
@Column(name = "block_code", nullable = true, length = 20)
private String blockCode;
@Basic
@Column(name = "block_name", nullable = true, length = 20)
private String blockName;
@Basic
@Column(name = "block_index", nullable = true)
private Integer blockIndex;
@Basic
@Column(name = "cross_num", nullable = true)
private Integer crossNum;
@Basic
@Column(name = "create_time", nullable = true)
private Timestamp createTime;
@Basic
@Column(name = "is_deleted", nullable = true)
private Byte isDeleted;
@Basic
@Column(name = "sync_block_id", nullable = true)
private Integer syncBlockId;
public int getBlockId() {
return blockId;
}
public void setBlockId(int blockId) {
this.blockId = blockId;
}
public String getBlockCode() {
return blockCode;
}
public void setBlockCode(String blockCode) {
this.blockCode = blockCode;
}
public String getBlockName() {
return blockName;
}
public void setBlockName(String blockName) {
this.blockName = blockName;
}
public Integer getBlockIndex() {
return blockIndex;
}
public void setBlockIndex(Integer blockIndex) {
this.blockIndex = blockIndex;
}
public Integer getCrossNum() {
return crossNum;
}
public void setCrossNum(Integer crossNum) {
this.crossNum = crossNum;
}
public Timestamp getCreateTime() {
return createTime;
}
public void setCreateTime(Timestamp createTime) {
this.createTime = createTime;
}
public Byte getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(Byte isDeleted) {
this.isDeleted = isDeleted;
}
public Integer getSyncBlockId() {
return syncBlockId;
}
public void setSyncBlockId(Integer syncBlockId) {
this.syncBlockId = syncBlockId;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TblAppBlockEntity that = (TblAppBlockEntity) o;
return blockId == that.blockId && Objects.equals(blockCode, that.blockCode) && Objects.equals(blockName, that.blockName) && Objects.equals(blockIndex, that.blockIndex) && Objects.equals(crossNum, that.crossNum) && Objects.equals(createTime, that.createTime) && Objects.equals(isDeleted, that.isDeleted) && Objects.equals(syncBlockId, that.syncBlockId);
}
@Override
public int hashCode() {
return Objects.hash(blockId, blockCode, blockName, blockIndex, crossNum, createTime, isDeleted, syncBlockId);
}
}
1条答案
按热度按时间kcrjzv8t1#
ID字段/列的类型(字符串)错误。因为它应该由数据库作为IDENTITY生成,所以它需要是Integer。像这样改变:
还应该在每个实体类中提供一个无参数构造函数。它与表创建无关,但在以后阅读数据时会成为问题。