Springboot+hibernate5:一个Entity出现两个表的问题

问题:

未声明命名规则,hibernate.hbm2ddl.auto=update。

@Entity

public class UserInfo implements Serializable

数据库中出现两个表:userinfo和user_info,表中字段与Entity中字段完全一样。


原因:

hibernate5中,原来的hibernate.naming-strategy不再被支持,而用hibernate.naming.implicit_naming_strategy=org.hibernate.boot.model.naming.SpringPhysicalNamingStrategy或hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl代替。

SpringPhysicalNamingStrategy与hibernate4中ImprovedNamingStrategy相同,PhysicalNamingStrategyStandardImpl与hibernate4中DefaultNamingStrategy相同。

Springboot对hibernate5采用的默认配置是SpringPhysicalNamingStrategy。


解决方案:

hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

或者显式声明表名(@Table(name=“user_info”))

你可能感兴趣的:(Springboot+hibernate5:一个Entity出现两个表的问题)