首页 > Web开发 > 详细

Hibernate中调用带有underscore的Column Name

时间:2015-03-05 23:28:58      阅读:375      评论:0      收藏:0      [点我收藏+]

Hibernate中默认的NamingStrategy不支持调用带有下划线的column name。在hibernate的bean中必须使用camel case。使用ImprovedNamingStrategy可以使hibernate成功map到带有下划线的column name。代码如下:

1. Configure文件

    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

@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;
  }
}

3. Unit Test

@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();
}

  

Hibernate中调用带有underscore的Column Name

原文:http://www.cnblogs.com/codingforum/p/4316846.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!