[Hibernate/HQL/Spring] select op one-to-many column mislukt

Pagina: 1
Acties:

  • Bbfreak
  • Registratie: September 2002
  • Laatst online: 04-02 10:03
Probleem
Ik moet een select uitvoeren op het column wat Hibernate toevoegd adhv de one-to-many mapping.
Hij geeft geen fouten maar ook geen data en dat hoort niet.

Mappings
Mapping Keten:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
    <class name="org.ymor.repman.model.Keten" table="tbl_keten">
        <id name="id" column="id" unsaved-value="null">
            <generator class="increment"/>
        </id>
        <property name="description" column="description" not-null="true"/>
        <property name="customer" column="customer" not-null="true"/>
        <bag name="sentinels">
            <key column="ketenId"/>
            <one-to-many class="org.ymor.repman.model.Sentinel"/>
        </bag>
    </class>
</hibernate-mapping>


Mapping Sentinel:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
    <class name="org.ymor.repman.model.Sentinel" table="tbl_sentinel">
        <id name="id" column="id" unsaved-value="null">
            <generator class="increment"/>
        </id>
        <property name="hostName" column="host_name" not-null="true"/>
        <property name="IP" column="IP" not-null="true"/>
        <property name="location" column="location" not-null="true"/>
        <property name="owner" column="owner" not-null="true"/>
        <property name="lct" column="lct" type="java.util.Date"/>
        <property name="lcd" column="lcd" type="java.util.Date"/> 
    </class>
</hibernate-mapping>


Werkende SQL code:
code:
1
SELECT * FROM tbl_sentinel WHERE ketenId != ?
Deze SELECT moet nu in Hibernate adhv de find() methode van Spring.
Java:
1
return getHibernateTemplate().find("from Sentinel where ketenId != ?", kId);
Dit werkt niet en ik denk omdat het komt omdat Sentinel geen ketenId attribuut heeft.

Specs
- Hibernate2
- Spring 1.2.8
- Spring & Hibernate n00b :)

Vraag
Hoe kan ik dit het beste oplossen?

Twitter @cmeerbeek / Halo Waypoint Profile


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Wat dacht je van:
Java:
1
getHibernateTemplate().load(Sentinal.class, new Long(kId));

  • Bbfreak
  • Registratie: September 2002
  • Laatst online: 04-02 10:03
-FoX- schreef op woensdag 14 juni 2006 @ 18:36:
Wat dacht je van:
Java:
1
getHibernateTemplate().load(Sentinal.class, new Long(kId));
Ik wil juist de Sentinels die niet gekoppeld zijn aan het ketenId.
Volgens mij bereikt jou qoute het tegenovergestelde of ben ik echt een aardbei? :)

Twitter @cmeerbeek / Halo Waypoint Profile


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 03-02 20:14
je moet je relatie bidirectioneel maken, en gebruik dan inverse="true" anders doe je onnodig veel queries als je gaat updaten.

"Live as if you were to die tomorrow. Learn as if you were to live forever"


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Inderdaad :)

Maak je relatie zoals ^^stupid zegt bidirectioneel d.w.z. dat je in je Sentinel mapping ook een property toevoegd die een Keten bevat. Met inverse="true" bepaal je de zijde aan welke kant er gepersisteerd kan worden. Op die manier kan je dan (mits een minor aanpassing aan je HQL) je beoogde resultaat bekomen

[ Voor 3% gewijzigd door -FoX- op 14-06-2006 20:18 ]


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 03-02 20:14
-FoX- schreef op woensdag 14 juni 2006 @ 20:18:
Inderdaad :)

Maak je relatie zoals ^^stupid zegt bidirectioneel d.w.z. dat je in je Sentinel mapping ook een property toevoegd die een Keten bevat. Met inverse="true" bepaal je de zijde aan welke kant er gepersisteerd kan worden. Op die manier kan je dan (mits een minor aanpassing aan je HQL) je beoogde resultaat bekomen
offtopic:
stupid^^ geloof ik 8)7

"Live as if you were to die tomorrow. Learn as if you were to live forever"

Pagina: 1