Mohl byste se mi prosim jeste podivat na to jak jsem tu tridu oanotoval? Ja mam pocit ze bude problem asi tam. Muzu pouzivat pri anotacich stejne jako u tech xml primitivni typy u set/get metod?

Pet

On Wed, 21 Nov 2007 14:56:57 +0100, Martin Chalupa <[EMAIL PROTECTED]> wrote:

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/

Odpovedet emailem