Hibernate中调用带有underscore的Column Name
Hibernate中默认的NamingStrategy不支持调用带有下划线的column name。在hibernate的bean中必须使用camel case。使用ImprovedNamingStrategy可以使hibernate成功map到带有下划线的column name。代码如下:
1. Config文件
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static SessionFactory getSessionFactory() { if (sessionFactory == null ) { Configuration configuration = new Configuration().configure(); System.setProperty( "hibernate.connection.password" , DEFAULT_PASSWORD); System.setProperty( "hibernate.connection.username" , DEFAULT_USER); System.setProperty( "hibernate.connection.driver_class" , DEFAULT_DRIVER_CLASS); System.setProperty( "hibernate.connection.url" , DEFAULT_URI); System.setProperty( "hibernate.ejb.naming_strategy" , "org.hibernate.cfg.ImprovedNamingStrategy" ); configuration.setProperties(System.getProperties()); sessionFactory = configuration.buildSessionFactory(); } return sessionFactory; } |
2. Bean
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Entity @Table (name = "version" ) public class Version { private int versionId; @Id @Column (name= "version_id" ) public int getVersionId() { return versionId; } public void setVersionId( int versionId) { this .versionId = versionId; }<br> } |
3. Unit Test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Test public void testVersionBean() { Session session = Config.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery( "select versionId from Version" ); @SuppressWarnings ( "unchecked" ) List<Object> version = query.list(); assertEquals(version.get( 0 ), 1 ); session.getTransaction().commit(); session.close(); } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· 用99元买的服务器搭一套CI/CD系统
· Excel百万数据如何快速导入?
· ShadowSql之.net sql拼写神器