konfiguracja, uruchomienie hibernate

0

W celu uruchomienia hibernate wykonałem:

  1. utworzyłem nowy projekt, do którego dodałem:
    ant-junit-1.6.1.jar commons-lang-1.0.1.jar ejb-api.jar jta-api.jarc3p0-0.8.4.5.jar commons-logging-1.0.4.jar hibernate-2.1.6.jar junit-3.8.1.jar cglib-full-2.0.1.jar dom4j-1.4.jar hsqldb.jar log4j-1.2.8.jar
    commons-collections-2.1.1.jar ehcache-0.9.jar jsdk23.jar odmg-3.0.jar
    Dodanie bibliotek wykonałem klikając w eclipse prawym guzikiem na Referenced Libraries -> Build Path.. --> configure Build Path -> Add External Jars... i dodałem wszystkie powyższe jary.

  2. Plik konfiguracyjny hibernate.cfg.xml umieściłem w katalogu głównym projektu
    Łącze się z bazą danych postgreSQL 8.3 na lokalnym komputerze

<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration  PUBLIC "-//Hibernate Configuration DTD//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
        <session-factory>
 <!-- Ustawienia dla lokalnej bazy PostgreSQL. -->
                <property name="dialect">net.sf.hibernate.dialect.PostgreSQLDialect</property>
                <property name="query.substitutions">yes 'Y', no 'N'</property>
                <property name="connection.driver_class">org.postgresql.Driver</property>
                <property name="connection.url">jdbc:postgresql://localhost/postgres</property>
                <property name="connection.username">postgres</property>
		<property name="connection.password"></property>
<!-- Uzycie puli polonczen C3P0. -->
                <property name="c3p0.min_size">3</property>
                <property name="c3p0.max_size">5</property>
                <property name="c3p0.timeout">1800</property>
<!-- Wbudowana w Hibernate pula do testow. -->
                <property name="connection.pool_size">1</property>
<!-- uzycie EHCache bez bufora zapytn -->
                <property name="cache.provider_class">net.sf.ehcache.hibernate.Provider</property>
                <property name="cache.use_query_cache">false</property>
                <property name="cache.use_minimal_puts">false</property>
<!-- Wyswietlanie kodu SQL na standardowym wyjsciu. -->
                <property name="show_sql">true</property>
<!-- Pliki odwzorowan. Pliki odwzorowan umieszczasie w tych samych katalochach co pliki .class-->
                <mapping resource="Klient.hbm.xml"/>
        </session-factory>
</hibernate-configuration>
  1. przykładowy plik z kasą trwałą
public class Klient 
{
	int id;
	String inie, nazwisko, ulica, miasto, dataurodzenia, telefon;
}
  1. Plik odwzorowania Klient.hbm.xml do powyższej klasy
    umiesciłem go w katalogu: nazwa_projektu/bin, tam gdzie plik z Klienci.class
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" 
	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
	<class name="Klient" table="Klienci">
		<id name="id" column="idKlienta">
			<generator class="increment"/>
		</id>
		<property name="imie" column="imie"/>
		<property name="nazwisko" column="nazwisko"/> 
		<property name="ulica" column="ulica"/> 
		<property name="miasto" column="miasto"/> 
		<property name="dataUrodzenia" column="dataUrodzenia"/> 
		<property name="telefon" column="telefon"/> 
	</class>
</hibernate-mapping>
  1. Uruchomienie hibernate
import net.sf.hibernate.cfg.*;
import net.sf.hibernate.*;

public class ORMKlient 
{
	public static void main(String args[])throws HibernateException, MappingException 
	{
		SessionFactory sesion=new Configuration()
		.setProperties(System.getProperties())
		.buildSessionFactory();
                System.out.println("Hibernate dziala");
	}
}

Nniezależnie od utworzenia obiektu SessionFactory kompilatyor zwraca:

log4j:WARN No appenders could be found for logger (org.hibernate.dialect.Dialect).
log4j:WARN Please initialize the log4j system properly.
/*foo*/ select * from ( select rownumber() over() as rownumber_, * from foos ) as temp_ where rownumber_ between ?+1 and ?
/*foo*/ select * from ( select rownumber() over() as rownumber_, row_.* from ( select distinct * from foos ) as row_ ) as temp_ where rownumber_ between ?+1 and ?
/*foo*/ select * from ( select rownumber() over(order by foo.bar, foo.baz) as rownumber_, * from foos foo order by foo.bar, foo.baz ) as temp_ where rownumber_ between ?+1 and ?
/*foo*/ select * from ( select rownumber() over() as rownumber_, row_.* from ( select distinct * from foos foo order by foo.bar, foo.baz ) as row_ ) as temp_ where rownumber_ between ?+1 and ?

Nie wiem dlaczego nie działa.
poza tym nie jestem pewny gdzie umieścić plik konfiguracyjny. W katalogu nazwa_projektu czy w katalogu nazwa_projektu/bin.

0
  1. plik konfiguracyjny hibernate może być gdziekolwiek w classpathie.
  2. masz źle skonfigurowanego log4j i dlaego sypie takimi głupotami.
0

Bedzie hibernate dziłać bez biblioteki do logowań? Bo najprościej bedzie ją usunać. Pytam bo jak usune i znowu pojawią sie kulfony to nie będe wiedział co je powoduje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1