Hibernate創(chuàng)建命名策略
在開發(fā)軟件時(shí),通常要求每個(gè)開發(fā)人員遵守共同的命名策略。例如,數(shù)據(jù)庫的表名以及字段名的所有字符都為大寫,表名“S”結(jié)尾。對(duì)于Customer類,對(duì)應(yīng)的數(shù)據(jù)庫表名為CUSTOMERS。一種方法是手工設(shè)置表名和字段名,但這種方法很耗時(shí),而且容易出錯(cuò)。還有一種方式是實(shí)現(xiàn)Hibernate的NamingStrategy接口。
- import net.sf.hibernate.cfg.NamingStrategy;
- import net.sf.hibernate.util.StringHelper;
- public class MyNamingStrategy implements NamingStrategy {
- public String classToTableName(String className) {
- return StringHelper.unqualify(className).toUpperCase() + 'S';
- }
- public String propertyToColumnName(String propertyName) {
- return propertyName.toUpperCase();
- }
- public String tableName(String tableName) {
- return tableName;
- }
- public String columnName(String columnName) {
- return columnName;
- }
- public String propertyToTableName(String className, String propertyName) {
- return classToTableName(className) + '_'
- + propertyToColumnName(propertyName);
- }
- }
- Congfiguration cnofig = new Configuration();
- config.setNameingStratefy(new MyNamingStrategy());
- SessionFactory sessionFactory = config.buildSessionFactory();
【編輯推薦】