Ahoj, do bean si dávám přímo sessionFactory
<bean id="dao" class="cz.chali.dao.Dao">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
A v dao pak.
sessionFactory.getCurrentSession().createQuery("....");
Martin
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Petr Burdik
Sent: Wednesday, November 21, 2007 1:58 PM
To: Java
Subject: Re: Spring + hibernate + annotations
Ahoj,
super. to funguje. Akorat drobny problem je, ze mi to hlasi porad stejnou
chybu. Jak prosim Te pracujes s tou session? Ja jenom jestli nemam chybu
prave v tom.
Pet
On Wed, 21 Nov 2007 13:04:45 +0100, Martin Chalupa
<[EMAIL PROTECTED]> wrote:
> Ahoj, také používám oba přístupy a konfiguraci mám takto.
>
> <bean id="sessionFactory"
> class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactor
> yBean">
> <property name="dataSource" ref="dataSource"/>
> <property name="annotatedClasses">
> <list>
> <value>cz.chali.SomeEntity</value>
> </list>
> </property>
> <property name="mappingLocations">
> <list>
>
> <value>classpath:cz/chali/SomeEntity2.hbm.xml</value>
> </list>
> </property>
> <property name="hibernateProperties">
> <value>
> hibernate.dialect=${db.dialect}
>
> hibernate.current_session_context_class=thread
> </value>
> </property>
> </bean>
>
> Martin
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
> Behalf Of Petr Burdik
> Sent: Wednesday, November 21, 2007 12:51 PM
> To: Java
> Subject: Spring + hibernate + annotations
>
> Ahojte,
> pouzival jsem pro hibernate vzdy xml soubory a vse fungovalo jak jsem
> potreboval. Ted se snazim prejit na annotace a mam problem s tim ze mi
> pri
> dotazech pise NullPointerException. Pritom session factory neni null,
> criteria taky ne a session taktez ne.
>
>
>
> Pouzivam v soucasne dobe hibridni pristup. Tedy mam jednu
> hibernateSessionFactory pro annotace, druhou mam pro klasickou
> konfiguraci
> pres xml. Soubor s anotovanym objektem mi normalne najde. Tam zadny
> problem neni. Jenom kdyz zjistuju pocet objektu v kolekci.
>
> konfigurace springu:
>
> <!-- hibernate OR mapping -->
> <bean id="hibernateSessionFactory4Annotations"
> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
> <property name="dataSource" ref="myDataSourceAnnotations" />
> <property name="configurationClass"
> value="org.hibernate.cfg.AnnotationConfiguration"/>
> <property name="configLocation"
> value="classpath:mappings/hibernate.annotations.cfg.xml"/>
> <property name="hibernateProperties">
> <props>
> <prop
> key="hibernate.bytecode.provider">javassist</prop>
> <prop key="hibernate.show_sql">true</prop>
> <prop
> key="hibernate.cache.use_second_level_cache">false</prop>
> <prop key="hibernate.hbm2ddl.auto">update</prop>
> </props>
> </property>
> </bean>
>
> v souboru hibernate.annotations.cfg.xml je nasledujici radek:
>
> <?xml version="1.0"?>
> <!DOCTYPE hibernate-configuration PUBLIC
> "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
> "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
> <hibernate-configuration>
> <session-factory>
> <mapping
> class="net.itsynapse2.ecomerce.entity.bank.BankTransfer"/>
> </session-factory>
> </hibernate-configuration>
>
> Anotovany objekt:
> @Entity
> @Table(name="ecomerce_bank_bankTransfers")
> public class BankTransfer implements Cloneable, IHibernateCloneable {
> protected long transferId = 0; // cislo
> bankovniho transferu
> protected BankAccount bankAccountIn = new BankAccount(); // cislo
> bankovniho uctu odesilatele
> protected BankAccount bankAccountOut = new BankAccount(); // cislo
> bankovniho uctu prijemce
> protected long variableSymbol = 0; //
> variabilni symbol
> protected long specificSymbol = 0; //
> specificky symbol
> protected long constantSymbol = 0; //
> konstantni symbol
> protected double price = 0; //
> castka
> protected int currencyCode = 0; // kod
> meny
> protected String currencyTextCode = ""; // kod
> meny jako text
> protected Date transferTS = new Date(0); // datum
> provedeni transakce
> protected long assignedTaxDocumentOid = 0; // cislo
> prirazeneho danoveho dokladu
> protected int assignedTaxDocumentType = 0; // typ
> danoveho dokladu
> protected int assignState = 0; // stav
> prirazeni transferu k danovemu dokladu
> protected String originalText = ""; //
> originalni text
>
> @Id @GeneratedValue(strategy=GenerationType.SEQUENCE,
> generator="ecomerce_bank_bankTransfers_transferId_seq")
> public void setTransferId( long transferId ) { this.transferId =
> transferId; }
> public long getTransferId() { return transferId; }
> @Embedded
> @AttributeOverrides( {
> @AttributeOverride(name="bankAccountId", column =
> @Column(name="accountIn_bankAccountId") ),
> @AttributeOverride(name="accountPrefix", column =
> @Column(name="accountIn_accountPrefix") ),
> @AttributeOverride(name="accountNumber", column =
> @Column(name="accountIn_accountNumber") ),
> @AttributeOverride(name="iban", column =
> @Column(name="accountIn_iban") ),
> @AttributeOverride(name="bankCode", column =
> @Column(name="accountIn_bankCode") ),
> @AttributeOverride(name="name", column =
> @Column(name="accountIn_bankTextCode") )
> } )
> public void setBankAccountIn( BankAccount bankAccountIn ) {
> this.bankAccountIn = bankAccountIn; }
> public BankAccount getBankAccountIn() { return bankAccountIn; }
> @Embedded
> @AttributeOverrides( {
> @AttributeOverride(name="bankAccountId", column =
> @Column(name="accountOut_bankAccountId") ),
> @AttributeOverride(name="accountPrefix", column =
> @Column(name="accountOut_accountPrefix") ),
> @AttributeOverride(name="accountNumber", column =
> @Column(name="accountOut_accountNumber") ),
> @AttributeOverride(name="iban", column =
> @Column(name="accountOut_iban") ),
> @AttributeOverride(name="bankCode", column =
> @Column(name="accountOut_bankCode") ),
> @AttributeOverride(name="name", column =
> @Column(name="accountOut_bankTextCode") )
> } )
> public void setBankAccountOut( BankAccount bankAccountOut ) {
> this.bankAccountOut = bankAccountOut; }
> public BankAccount getBankAccountOut() { return bankAccountOut; }
> @Column(name="variableSymbol")
> public long getVariableSymbol() { return variableSymbol; }
> public void setVariableSymbol( long variableSymbol ) {
> this.variableSymbol = variableSymbol; }
> @Column(name="specificSymbol")
> public long getSpecificSymbol() { return specificSymbol; }
> public void setSpecificSymbol( long specificSymbol ) {
> this.specificSymbol = specificSymbol; }
> @Column(name="constantSymbol")
> public long getConstantSymbol() { return constantSymbol; }
> public void setConstantSymbol( long constantSymbol ) {
> this.constantSymbol = constantSymbol; }
> @Column(name="price")
> public double getPrice() { return price; }
> public void setPrice( double price ) { this.price = price; }
> @Column(name="currencyCode")
> public int getCurrencyCode() { return currencyCode; }
> public void setCurrencyCode( int currencyCode ) { this.currencyCode
> =
> currencyCode; }
> @Column(name="currencyTextCode")
> public String getCurrencyTextCode() { return currencyTextCode; }
> public void setCurrencyTextCode( String currencyTextCode ) {
> this.currencyTextCode = currencyTextCode; }
> @Column(name="transferTS")
> public Date getTransferTS() { return transferTS; }
> public void setTransferTS( Date transferTS ) { this.transferTS =
> transferTS; }
> @Column(name="assignedTaxDocumentOid")
> public long getAssignedTaxDocumentOid() { return
> assignedTaxDocumentOid; }
> public void setAssignedTaxDocumentOid( long assignedTaxDocumentOid
> ) {
>
> this.assignedTaxDocumentOid = assignedTaxDocumentOid; }
> @Column(name="assignedTaxDocumentType")
> public int getAssignedTaxDocumentType() { return
> assignedTaxDocumentType; }
> public void setAssignedTaxDocumentType( int assignedTaxDocumentType
> )
> { this.assignedTaxDocumentType = assignedTaxDocumentType; }
> @Column(name="assignState")
> public int getAssignState() { return assignState; }
> public void setAssignState( int assignState ) { this.assignState =
> assignState; }
> @Column(name="originalText")
> public String getOriginalText() { return originalText; }
> public void setOriginalText( String originalText ) {
> this.originalText
>
> = originalText; }
>
> }
>
> Chyba kterou mi to hlasi pri inicializaci do logu - ten posledni radek.
> Pritom ty anotace projde.:
>
> 2007-11-21 12:25:29,887 INFO [org.hibernate.cfg.annotations.Version] -
> <Hibernate Annotations 3.3.0.GA>
> 2007-11-21 12:25:29,957 INFO [org.hibernate.cfg.Environment] - <Hibernate
> 3.2.3>
> 2007-11-21 12:25:29,977 INFO [org.hibernate.cfg.Environment] -
> <hibernate.properties not found>
> 2007-11-21 12:25:29,983 INFO [org.hibernate.cfg.Environment] - <Bytecode
> provider name : cglib>
> 2007-11-21 12:25:29,998 INFO [org.hibernate.cfg.Environment] - <using JDK
> 1.4 java.sql.Timestamp handling>
> 2007-11-21 12:25:30,535 INFO [org.hibernate.cfg.Configuration] -
> <configuring from url:
> file:/home/pet/work/svn/itsynapse20/trunk/target/itsynapse20-2.0-SNAPSHOT/WE
> B-INF/classes/mappings/hibernate.annotations.cfg.xml>
> 2007-11-21 12:25:30,621 INFO [org.hibernate.cfg.Configuration] -
> <Configured SessionFactory: null>
>
> Kdyz napisu do toho souboru hibernate.annotations.cfg.xml nazev
> annotovane
> tridy spatne, tak mi to vyhlasi ze neexistuje. Takze zjevne tu tridu
> najde. Akorat je divne ze pak nenapise jako pri klasicke inicializaci
> pomoci xml neco ve stylu:
>
> 2007-11-21 12:46:59,221 INFO [org.hibernate.cfg.HbmBinder] - <Mapping
> class: net.itsynapse2.ecomerce.entity.article.Article ->
> ecomerce_article>
>
> Problem je pak kdyz chci nejake radky pomoci criteria dostat tak mi to
> vyhlasi NullPointerException. Za jakoukoliv radu budu moc rad.
>
> Pet
>
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/