// Path: src/main/java/org/fireply/enter/dao/Dao.java
// public interface Dao {
// 
//     void persist(Object object);
//     Serializable save(Object object);
//     void delete(Object object);
//     Object merge(Object object);
//     
//     Object get(Class<?> clazz, Serializable id);
//     Object get(String modelName, Serializable id);
//     List<?> getAll(Class<?> clazz);
//     List<?> getAll(String modeName);
//     
//     List<?> get(Class<?> clazz, String fieldName, Object fieldValue);
//     List<?> get(String modelName, String fieldName, Object fieldValue);
//     List<?> get(Class<?> clazz, Map<String, Object> fieldsMap);
//     
//     List<?> executeQuery(String hql);
//     List<?> executeQuery(String hql,int firstResult,int maxResults);
//     List<?> executeSqlQuery(String sql);
//     List<?> executeSqlQuery(String sql,int firstResult,int maxResults);
//     
//     List<?> executeUpdate(String hql);
//     List<?> executeUpdate(String hql,int firstResult,int maxResults);
//     List<?> executeSqlUpdate(String sql);
//     List<?> executeSqlUpdate(String sql,int firstResult,int maxResults);
//     
// //    Object findById(String id);
// //    List<?> findByExample(Object object);
//     
// }
// 
// Path: src/main/java/org/fireply/enter/util/ClumnNameUtil.java
// public class ClumnNameUtil {
// 
//     private static final char SEPARATOR = '_';
// 
//     public static String getClumnName(String fieldName) {
//         return getUnderlineCase(fieldName);
//     }
// 
//     public static String getUnderlineCase(String camelCase) {
//         if (camelCase == null) {
//             return null;
//         }
// 
//         StringBuilder sb = new StringBuilder();
//         boolean upperCase = false;
//         boolean nextUpperCase = false;
//         char c;
// 
//         for (int i = 0; i < camelCase.length(); i++) {
//             c = camelCase.charAt(i);
//             sb.append(Character.toLowerCase(c));
// 
//             if (i < (camelCase.length() - 1)) {
//                 upperCase = Character.isUpperCase(camelCase.charAt(i));
//                 nextUpperCase = Character.isUpperCase(camelCase.charAt(i + 1));
//                 if (!upperCase && nextUpperCase) {
//                     sb.append(SEPARATOR);
//                 }
//             }
//         }
// 
//         return sb.toString();
//     }
// }


import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.fireply.enter.dao.Dao;
import org.fireply.enter.util.ClumnNameUtil;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

package org.fireply.enter.dao.impl;



@Repository
@SuppressWarnings("rawtypes")       //  本类所有返回类型为 List 的方法返回的 List 都是调用  Hibernate 的方法后返回的

// Path: src/main/java/org/fireply/enter/dao/Dao.java
// public interface Dao {
// 
//     void persist(Object object);
//     Serializable save(Object object);
//     void delete(Object object);
//     Object merge(Object object);
//     
//     Object get(Class<?> clazz, Serializable id);
//     Object get(String modelName, Serializable id);
//     List<?> getAll(Class<?> clazz);
//     List<?> getAll(String modeName);
//     
//     List<?> get(Class<?> clazz, String fieldName, Object fieldValue);
//     List<?> get(String modelName, String fieldName, Object fieldValue);
//     List<?> get(Class<?> clazz, Map<String, Object> fieldsMap);
//     
//     List<?> executeQuery(String hql);
//     List<?> executeQuery(String hql,int firstResult,int maxResults);
//     List<?> executeSqlQuery(String sql);
//     List<?> executeSqlQuery(String sql,int firstResult,int maxResults);
//     
//     List<?> executeUpdate(String hql);
//     List<?> executeUpdate(String hql,int firstResult,int maxResults);
//     List<?> executeSqlUpdate(String sql);
//     List<?> executeSqlUpdate(String sql,int firstResult,int maxResults);
//     
// //    Object findById(String id);
// //    List<?> findByExample(Object object);
//     
// }
// 
// Path: src/main/java/org/fireply/enter/util/ClumnNameUtil.java
// public class ClumnNameUtil {
// 
//     private static final char SEPARATOR = '_';
// 
//     public static String getClumnName(String fieldName) {
//         return getUnderlineCase(fieldName);
//     }
// 
//     public static String getUnderlineCase(String camelCase) {
//         if (camelCase == null) {
//             return null;
//         }
// 
//         StringBuilder sb = new StringBuilder();
//         boolean upperCase = false;
//         boolean nextUpperCase = false;
//         char c;
// 
//         for (int i = 0; i < camelCase.length(); i++) {
//             c = camelCase.charAt(i);
//             sb.append(Character.toLowerCase(c));
// 
//             if (i < (camelCase.length() - 1)) {
//                 upperCase = Character.isUpperCase(camelCase.charAt(i));
//                 nextUpperCase = Character.isUpperCase(camelCase.charAt(i + 1));
//                 if (!upperCase && nextUpperCase) {
//                     sb.append(SEPARATOR);
//                 }
//             }
//         }
// 
//         return sb.toString();
//     }
// }


// Path: src/main/java/org/fireply/enter/dao/impl/DaoImpl.java
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.fireply.enter.dao.Dao;
import org.fireply.enter.util.ClumnNameUtil;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

package org.fireply.enter.dao.impl;



@Repository
@SuppressWarnings("rawtypes")       //  本类所有返回类型为 List 的方法返回的 List 都是调用  Hibernate 的方法后返回的

public class DaoImpl implements Dao {
