Java Hibernate加载程序减慢Hibernate SqlQuery

Java Hibernate加载程序减慢Hibernate SqlQuery,java,sql,performance,hibernate,db2,Java,Sql,Performance,Hibernate,Db2,我在Hibernate 3.6.9 Final下使用DB2数据库时,SqlQuery的时间性能很差。从sql客户端(Squirrel)快速生成sql: 我用的是我自己的结果变压器,但它工作得又好又快(我测量过时间) 我一直在查看周围的时间,发现org.hibernate.loader.loader调用其方法时,所有的时间(大约12秒!!!)都丢失了: 11:21:17,026 DEBUG 127.0.0.1 - MYAPPWEB/api/requests/search - org.hibern

我在Hibernate 3.6.9 Final下使用DB2数据库时,SqlQuery的时间性能很差。从sql客户端(Squirrel)快速生成sql:


我用的是我自己的结果变压器,但它工作得又好又快(我测量过时间)

我一直在查看周围的时间,发现org.hibernate.loader.loader调用其方法时,所有的时间(大约12秒!!!)都丢失了:

11:21:17,026 DEBUG 127.0.0.1 -  MYAPPWEB/api/requests/search - org.hibernate.jdbc.AbstractBatcher[426] - about to open ResultSet (open ResultSets: 0, globally: 0)
11:21:17,205 DEBUG 127.0.0.1 - MYAPPWEB/api/requests/search - org.hibernate.loader.Loader[1322] - result row: 
11:21:17,272 DEBUG 127.0.0.1 - /MYAPPWEB/api/requests/search - org.hibernate.loader.Loader[1322] - result row: 

...175 rows all the same...

11:21:27,978 DEBUG 127.0.0.1 - /MYAPPWEB/api/requests/search - org.hibernate.loader.Loader[1322] - result row: 
11:21:28,037 DEBUG 127.0.0.1 - /MYAPPWEB/api/requests/search - org.hibernate.loader.Loader[1322] - result row: 
11:21:28,096 DEBUG 127.0.0.1 - /MYAPPWEB/api/requests/search - org.hibernate.jdbc.AbstractBatcher[433] - about to close ResultSet (open ResultSets: 1, globally: 1)
11:21:28,097 DEBUG 127.0.0.1 - /MYAPPWEB/api/requests/search - org.hibernate.jdbc.AbstractBatcher[418] - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
正如你在左边的日志中看到的,大约花费了11秒。我在Google上搜索了这个Hibernate类,在这里找到了源代码:并得出结论,加载程序中的getRow()方法每行进行一次查询(总共175次)以检查ID等等,但我不知道如何禁用此行为,或者为了避免此延迟,我应该修改哪个配置

我的映射是:

主对象(请求):


拉丁美洲和加勒比海地区

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.request.Request" 
        table="REQUEST" schema="${db2.app.schema}">
        <id name="id" type="java.lang.Long" access="field">
            <column name="REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="name" type="java.lang.String">
            <column name="NAME" not-null="true" />
        </property>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>

        <property name="improvement" type="java.lang.String">
            <column name="BENEFIT" not-null="true" />
        </property>

        <property name="startScheduledDate" type="java.util.Date">
            <column name="START_SCHEDULED_DATE" not-null="false" />
        </property>

        <property name="createTimestamp" type="java.sql.Timestamp">
            <column name="CREATE_DATE" not-null="true" />
        </property>

        <property name="createUser" type="java.lang.String">
            <column name="CREATE_USER" not-null="true" />
        </property>           
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.lac.Lac" 
        table="REQUEST_ENTERPRISE_AREA" schema="${db2.app.schema}">
        <composite-id name="id"
            class="com.enterprise.myappweb.model.requests.lac.LacId">
            <key-property name="requestId" type="java.lang.Long">
                <column name="REQUEST_ID" not-null="true" />
            </key-property>
            <key-property name="lacId" type="java.lang.Integer">
                <column name="ENTERPRISE_AREA_ID" not-null="true" />
            </key-property>
        </composite-id>               

        <property name="order" type="java.lang.Integer">
            <column name="ORDER" not-null="true" />
        </property>

        <property name="startScheduledDate" type="java.util.Date">
            <column name="START_SCHEDULED_DATE" not-null="false" />
        </property>

        <property name="finalScheduledDate" type="java.util.Date">
            <column name="END_SCHEDULED_DATE" not-null="false" />
        </property>           
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.PriorityType" 
        table="PRIORITY_TYPE_REQUEST" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="PRIORITY_TYPE_REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.Status" 
        table="REQUEST_STATUS" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="REQUEST_STATUS_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.RequestType" 
        table="REQUEST_TYPE_REQUEST" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="REQUEST_TYPE_REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>

优先类型

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.request.Request" 
        table="REQUEST" schema="${db2.app.schema}">
        <id name="id" type="java.lang.Long" access="field">
            <column name="REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="name" type="java.lang.String">
            <column name="NAME" not-null="true" />
        </property>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>

        <property name="improvement" type="java.lang.String">
            <column name="BENEFIT" not-null="true" />
        </property>

        <property name="startScheduledDate" type="java.util.Date">
            <column name="START_SCHEDULED_DATE" not-null="false" />
        </property>

        <property name="createTimestamp" type="java.sql.Timestamp">
            <column name="CREATE_DATE" not-null="true" />
        </property>

        <property name="createUser" type="java.lang.String">
            <column name="CREATE_USER" not-null="true" />
        </property>           
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.lac.Lac" 
        table="REQUEST_ENTERPRISE_AREA" schema="${db2.app.schema}">
        <composite-id name="id"
            class="com.enterprise.myappweb.model.requests.lac.LacId">
            <key-property name="requestId" type="java.lang.Long">
                <column name="REQUEST_ID" not-null="true" />
            </key-property>
            <key-property name="lacId" type="java.lang.Integer">
                <column name="ENTERPRISE_AREA_ID" not-null="true" />
            </key-property>
        </composite-id>               

        <property name="order" type="java.lang.Integer">
            <column name="ORDER" not-null="true" />
        </property>

        <property name="startScheduledDate" type="java.util.Date">
            <column name="START_SCHEDULED_DATE" not-null="false" />
        </property>

        <property name="finalScheduledDate" type="java.util.Date">
            <column name="END_SCHEDULED_DATE" not-null="false" />
        </property>           
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.PriorityType" 
        table="PRIORITY_TYPE_REQUEST" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="PRIORITY_TYPE_REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.Status" 
        table="REQUEST_STATUS" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="REQUEST_STATUS_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.RequestType" 
        table="REQUEST_TYPE_REQUEST" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="REQUEST_TYPE_REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>

状态

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.request.Request" 
        table="REQUEST" schema="${db2.app.schema}">
        <id name="id" type="java.lang.Long" access="field">
            <column name="REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="name" type="java.lang.String">
            <column name="NAME" not-null="true" />
        </property>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>

        <property name="improvement" type="java.lang.String">
            <column name="BENEFIT" not-null="true" />
        </property>

        <property name="startScheduledDate" type="java.util.Date">
            <column name="START_SCHEDULED_DATE" not-null="false" />
        </property>

        <property name="createTimestamp" type="java.sql.Timestamp">
            <column name="CREATE_DATE" not-null="true" />
        </property>

        <property name="createUser" type="java.lang.String">
            <column name="CREATE_USER" not-null="true" />
        </property>           
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.lac.Lac" 
        table="REQUEST_ENTERPRISE_AREA" schema="${db2.app.schema}">
        <composite-id name="id"
            class="com.enterprise.myappweb.model.requests.lac.LacId">
            <key-property name="requestId" type="java.lang.Long">
                <column name="REQUEST_ID" not-null="true" />
            </key-property>
            <key-property name="lacId" type="java.lang.Integer">
                <column name="ENTERPRISE_AREA_ID" not-null="true" />
            </key-property>
        </composite-id>               

        <property name="order" type="java.lang.Integer">
            <column name="ORDER" not-null="true" />
        </property>

        <property name="startScheduledDate" type="java.util.Date">
            <column name="START_SCHEDULED_DATE" not-null="false" />
        </property>

        <property name="finalScheduledDate" type="java.util.Date">
            <column name="END_SCHEDULED_DATE" not-null="false" />
        </property>           
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.PriorityType" 
        table="PRIORITY_TYPE_REQUEST" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="PRIORITY_TYPE_REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.Status" 
        table="REQUEST_STATUS" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="REQUEST_STATUS_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.RequestType" 
        table="REQUEST_TYPE_REQUEST" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="REQUEST_TYPE_REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>

请求类型

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.request.Request" 
        table="REQUEST" schema="${db2.app.schema}">
        <id name="id" type="java.lang.Long" access="field">
            <column name="REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="name" type="java.lang.String">
            <column name="NAME" not-null="true" />
        </property>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>

        <property name="improvement" type="java.lang.String">
            <column name="BENEFIT" not-null="true" />
        </property>

        <property name="startScheduledDate" type="java.util.Date">
            <column name="START_SCHEDULED_DATE" not-null="false" />
        </property>

        <property name="createTimestamp" type="java.sql.Timestamp">
            <column name="CREATE_DATE" not-null="true" />
        </property>

        <property name="createUser" type="java.lang.String">
            <column name="CREATE_USER" not-null="true" />
        </property>           
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.lac.Lac" 
        table="REQUEST_ENTERPRISE_AREA" schema="${db2.app.schema}">
        <composite-id name="id"
            class="com.enterprise.myappweb.model.requests.lac.LacId">
            <key-property name="requestId" type="java.lang.Long">
                <column name="REQUEST_ID" not-null="true" />
            </key-property>
            <key-property name="lacId" type="java.lang.Integer">
                <column name="ENTERPRISE_AREA_ID" not-null="true" />
            </key-property>
        </composite-id>               

        <property name="order" type="java.lang.Integer">
            <column name="ORDER" not-null="true" />
        </property>

        <property name="startScheduledDate" type="java.util.Date">
            <column name="START_SCHEDULED_DATE" not-null="false" />
        </property>

        <property name="finalScheduledDate" type="java.util.Date">
            <column name="END_SCHEDULED_DATE" not-null="false" />
        </property>           
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.PriorityType" 
        table="PRIORITY_TYPE_REQUEST" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="PRIORITY_TYPE_REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.Status" 
        table="REQUEST_STATUS" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="REQUEST_STATUS_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.enterprise.myappweb.model.requests.type.RequestType" 
        table="REQUEST_TYPE_REQUEST" schema="${db2.app.schema}">       
        <id name="id" type="java.lang.Short" access="field">
            <column name="REQUEST_TYPE_REQUEST_ID" />
            <generator class="native" />
        </id>

        <property name="description" type="java.lang.String">
            <column name="DESCRIPTION" not-null="true" />
        </property>                    
    </class>

    <!-- I omit the named SQL queries here -->
</hibernate-mapping>

Java代码:

@Repository("requestDao")
public class RequestDaoHibernate extends AbstractReadWriteDao<Request, Long> implements RequestDao {
    @Override
    public List<Request> findRequests(final RequestSearchDto requestSearchDto, final Boolean isWarehouseUser) {
        queryString = "SELECT .... FROM ...."; // Long string
        List<Request> result = this.listSQLQuery(queryString.toString(), new SQLQueryCallback() {
            @Override
            public void doWithQuery(final SQLQuery query) {
                // Recuperamos idiomas (del usuario y por defecto) a través de spring
                String idiom = LocaleContextHolder.getLocale().getLanguage().toUpperCase();
                query.setParameter("isoCodeLanguageId", 3);
                query.setParameter("defaultLanguageId", 1);

                for(Entry<String, Object> e : dictionary.entrySet()) {
                    if(e.getKey().endsWith("List")) {
                        query.setParameterList(e.getKey(), (Collection)e.getValue());
                    } else {
                        query.setParameter(e.getKey(), e.getValue());
                    }
                }

                RequestSearchRT rt = new RequestSearchRT();

                query.setResultTransformer(rt);
            }});

            return result;
        }
    }

    SuppressWarnings({"unchecked"})
    public <S> List<S> listSQLQuery(final String sqlQuery,
            final SQLQueryCallback callback) {

        if (LOG.isDebugEnabled()) {
            LOG.debug("Listing elements with SQL query: {}", sqlQuery);
        }

        return (List<S>) getHibernateTemplate().execute(new HibernateCallback() {

            @Override
            public List<S> doInHibernate(final Session session) throws SQLException {
                SQLQuery query = session.createSQLQuery(sqlQuery);

                callback.doWithQuery(query);

                return query.list();
            }
        });
    }
}
@Repository(“requestDao”)
公共类RequestDaoHibernate扩展AbstractReadWriteDao实现RequestDao{
@凌驾
公共列表findRequests(final RequestSearchDto RequestSearchDto,final Boolean isWarehouseUser){
queryString=“选择….从….”;//长字符串
List result=this.listSQLQuery(queryString.toString(),new-SQLQueryCallback()){
@凌驾
公共无效doWithQuery(最终SQLQuery查询){
//在春天的旅途中,你会发现你的习惯
字符串习惯用法=LocaleContextHolder.getLocale().getLanguage().toUpperCase();
setParameter(“isoCodeLanguageId”,3);
setParameter(“defaultLanguageId”,1);
对于(条目e:dictionary.entrySet()){
if(例如getKey().endsWith(“列表”)){
setParameterList(e.getKey(),(Collection)e.getValue());
}否则{
setParameter(e.getKey(),e.getValue());
}
}
RequestSearchRT rt=新的RequestSearchRT();
query.setResultTransformer(rt);
}});
返回结果;
}
}
SuppressWarnings({“unchecked”})
公共列表listSQLQuery(最终字符串sqlQuery,
最终SQLQueryCallback回调){
if(LOG.isDebugEnabled()){
debug(“使用SQL查询列出元素:{}”,sqlQuery);
}
return(List)getHibernateTemplate().execute(new HibernateCallback()){
@凌驾
公共列表doInHibernate(最终会话)引发SQLException{
SQLQuery=session.createSQLQuery(SQLQuery);
callback.doWithQuery(查询);
返回query.list();
}
});
}
}
我会按照人们的要求用配置设置更新帖子,因为我认为所有配置都在几个文件中,而且都很大


提前感谢。

问题不在加载程序中,问题在映射和请求中。请为您的请求添加持久性和代码。我正在使用ResultTransformer(我理解这意味着不应该涉及加载程序),但我正在粘贴主对象的映射。您的主对象非常简单。需要添加请求和请求代码中涉及的所有对象。已添加Java代码和映射,但不应使用映射。问题不在
加载程序中,而是在映射和请求中。请为您的请求添加持久性和代码。我正在使用ResultTransformer(我理解这意味着不应该涉及加载程序),但我正在粘贴主对象的映射。您的主对象非常简单。需要添加请求和请求代码中涉及的所有对象。已经添加了Java代码和映射,但不应使用映射。