当前位置:编程学习 > JAVA >>

连接HSQLDB,没任何反应

hsqldb 2.2.9, hibernate 4.1.2, spring 3.1.1.
hsqldb以内存方式运行。
执行了一个查询,什么都查不到,但数据库明明有东西。。。也不像是数据库没连上。怎么回事呢。

Hibernate: select user0_.OBJ_ID as OBJ1_0_, user0_.FIRST_NAME as FIRST2_0_, user0_.VERSION as VERSION0_ from TB_USER user0_ where user0_.OBJ_ID=?
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
    
    <!-- to import the Spring controllers. -->
    <context:annotation-config />
    <context:component-scan base-package="test">
    </context:component-scan>
    
     
    <bean id="myDataSourceDev" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
        <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
        <property name="url" value="jdbc:hsqldb:mem:TestDB"/>
        <property name="username" value="SA"/>
        <property name="password" value=""/>
    </bean>
    
    <!-- NOTE: use hibernate  -->
    <bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="myDataSourceDev"/>
        
        <property name="annotatedClasses">
            <list>
                <value>test.dto.User</value>
                
            </list>
        </property>
        
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.jdbc.batch_size">500</prop>
                <prop key="hibernate.cache.use_second_level_cache">false</prop>
                
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <!-- 
                <prop key="org.hibernate.envers.audit_table_suffix">_Audit</prop>
                <prop key="org.hibernate.envers.audit_table_prefix">log_</prop>
                <prop key="org.hibernate.envers.revision_field_name">rev</prop>
                <prop key="org.hibernate.envers.revision_type_field_name">revtype</prop>
                <prop key="org.hibernate.envers.revision_on_collection_change">true</prop>
                <prop key="org.hibernate.envers.do_not_audit_optimistic_locking_field">true</prop>
                <prop key="org.hibernate.envers.store_data_at_delete">true</prop>
                <prop key="org.hibernate.envers.default_schema"></prop>
                <prop key="org.hibernate.envers.default_catalog"></prop>
                 -->
            </props>
        </property>
        
    </bean>
    
    <tx:annotation-driven transaction-manager="txManager" />
    <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="mySessionFactory" />
    </bean>
    
</beans>


package test.dto;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Version;

@Entity
@Table(name="TB_USER")
public class User {
@Id
    @Column( name = "OBJ_ID")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long objId;

@Column(unique = false, name = "FIRST_NAME", nullable = false, length=50)
private String firstName;

@Version
@Column(name = "VERSION")
private long version;

public long getObjId() {
return objId;
}

public void setObjId(long objId) {
this.objId = objId;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public long getVersion() {
return version;
}

public void setVersion(long version) {
this.version = version;
}


}

--------------------编程问答--------------------  <property name="url" value="jdbc:hsqldb:mem:TestDB"/>url不对,应该是jdbc:hsqldb:hsql://localhost/类似的
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,