发生了一些奇怪的事情,我制作了一个 EJB3,它应该在数据库中写一些东西,但每次 HSQLDB 都拒绝连接:
a pre-9.0 client attempted to connect. we rejected them
但是我使用的是2.2.8,没有错误,因为它是由maven链接的。
这是我的 hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost</property>
<property name="hibernate.connection.username">sa</property>
<property name="connection.password"></property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="configurationClass">
org.hibernate.cfg.AnnotationConfiguration
</property>
<property name="hibernate.transaction.manager_lookup_class">
org.hibernate.transaction.JBossTransactionManagerLookup
</property>
<property name="hibernate.transaction.factory_class">
org.hibernate.transaction.CMTTransactionFactory
</property>
<property name="hibernate.jndi.class">
org.jnp.interfaces.NamingContextFactory
</property>
<property name="hibernate.session_factory_name">
hibernate/HSQLDBSessionFactory
</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
<property name="javax.persistence.validation.mode">none</property>
<!-- Mapping files -->
<mapping class="com.th.entity.TestEntity"/>
</session-factory>
</hibernate-configuration>
我在我的 EJB 中做什么:
HibernateUtil3.getSessionFactory().getCurrentSession().persist(entity);
HibernateUtil3.getSessionFactory().getCurrentSession().close();
还有我的 HibernateUtil3 :
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
/**
*
* @author adam
*/
public class HibernateUtil3 {
private static final SessionFactory sessionFactory = buildSessionFactory();//constroi a sessão
private static SessionFactory buildSessionFactory() {
try {
//Configuration cfg = new Configuration();//para mapeamento xml
AnnotationConfiguration cfg = new AnnotationConfiguration();//para mapeamento com annotations
cfg.configure("hibernate.cfg.xml");//arquivo de configuração do hibernate
return cfg.buildSessionFactory();
} catch (Throwable e) {
System.out.println("Criação inicial do objeto SessionFactory falhou. Erro: " + e);
throw new ExceptionInInitializerError(e);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
任何想法?谢谢=D