问题:
未声明命名规则,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”))