Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Java Persistence query - pomoc

[es] :: Java :: Java Persistence query - pomoc

[ Pregleda: 1609 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

srdjan_b
RS

Član broj: 136653
Poruke: 12
*.teol.net.



Profil

icon Java Persistence query - pomoc26.05.2009. u 20:30 - pre 181 meseci
Pozdrav,
Pri izradi jedne aplikacije koristim TopLink kao object-to-relational persistence. Imam sledeći upit koji radi:
Code:

select new entity.custom.KretanjaStavke(artikal.id, stavke.kolicina, artikal.naziv, kretanje.id)
                from Kretanja as kretanje 
                join kretanje.kretanjaStavkeCollection as stavke 
                join stavke.artikalId as artikal 
                where kretanje.id > 0 and artikal.grupaId.id = 1 and kretanje.datum = :datum 


Klasu entity.custom.KretanjaStavke sam ja kreirao i koristim je za slanje preko web servisa:
Code:

public class KretanjaStavke {
    private Integer id;
    private Double vpc;
    private Double mpc;
    private String porez;
    private Double kolicina;
    private String artikalNaziv;
    private Double suma;
    private List<entity.custom.KretanjaPodstavke> podstavke;

    public KretanjaStavke() {
    }
    public KretanjaStavke(Integer id, Double kolicina, String artikalNaziv, Integer kretanjeId) {
        this.id = id;
        this.kolicina = kolicina;
        this.artikalNaziv = artikalNaziv;
        this.suma = Double.parseDouble(kretanjeId.toString());
        this.podstavke = podstavke;
    }
    public KretanjaStavke(Integer id, Double kolicina, String artikalNaziv, Integer kretanjeId, List<entity.custom.KretanjaPodstavke> podstavke) {
        this.id = id;
        this.kolicina = kolicina;
        this.artikalNaziv = artikalNaziv;
        this.suma = Double.parseDouble(kretanjeId.toString());
        this.podstavke = podstavke;
    }
.
.
. geteri i seteri

}


Klasa podstavke izgleda:
Code:

public class KretanjaPodstavke {
    private Integer id;
    private String nazivPodstavke;
    private Integer grupa;

    public KretanjaPodstavke(Integer id, String nazivPodstavke, Integer grupa) {
        this.id = id;
        this.nazivPodstavke = nazivPodstavke;
        this.grupa = grupa;
    }
.
.
. geteri i seteri

}



Jedna stavka moze da ima vise stavki, i tu je moj problem. Kako da napravim upit koji ce mi vratiti listu objekata KretanjaStavke gdje svaka stavka ima listu objekata KretanjaPodstavke? Nesto tipa ovoga:
Code:

select new entity.custom.KretanjaStavke(artikal.id, stavke.kolicina, artikal.naziv, kretanje.id, 
                (new entity.custom.KretanjaPodstavke(podstavke.id, podstavke.artikalId.naziv, podstavke.artikalId.grupaId.id) 
                from podstavke)) 
                from Kretanja as kretanje 
                join kretanje.kretanjaStavkeCollection as stavke 
                join stavke.artikalId as artikal 
                join stavke.kretanjaPodstavkeCollection as podstavke
                "where kretanje.id > 0 and artikal.grupaId.id = 1 and kretanje.datum = :datum 


ali ovo ni u ludilu nece da proradi.
Nadam se da mi neko moze pomoci.
Hvala unarpijed...
 
Odgovor na temu

JPF
Beograd

Član broj: 3542
Poruke: 37
213.137.124.*



+2 Profil

icon Re: Java Persistence query - pomoc26.05.2009. u 21:59 - pre 181 meseci
Pogledaj Relationship Mappings na http://www.oracle.com/technolo...s/toplink-jpa-annotations.html
 
Odgovor na temu

srdjan_b
RS

Član broj: 136653
Poruke: 12
*.teol.net.



Profil

icon Re: Java Persistence query - pomoc27.05.2009. u 18:41 - pre 181 meseci
Pozdrav,
prije svega hvala na odgovoru. Ukoliko si mislio da mi problem moze rijesiti @SqlResultSetMapping, mislim da mi to nije rjesenje. Sa time ja dobijam: List of Object arrays: {[Order, Item, "Shoes"], [Order, Item, "Socks"], ...} To je visedimenzioni niz objekata i to me ne radi posao. Meni treba struktura objekata kao sto je pokazano xml-om:

Code:

            <stavka>
                <artikalNaziv>rthgrthrth</artikalNaziv>
                <id>0</id>
                <kolicina>1.5</kolicina>
                <podstavke>
                    <grupa>86</grupa>
                    <id>56</id>
                    <nazivPodstavke>ergergergeg</nazivPodstavke>
                </podstavke>
                <podstavke>
                    <grupa>4556</grupa>
                    <id>589</id>
                    <nazivPodstavke>ergergegr</nazivPodstavke>
                </podstavke>
                <podstavke>
                    <grupa>458</grupa>
                    <id>78</id>
                    <nazivPodstavke>ergergegregr</nazivPodstavke>
                </podstavke>
                <podstavke>
                    <grupa>58</grupa>
                    <id>78</id>
                    <nazivPodstavke>rthrtrh</nazivPodstavke>
                </podstavke>
            </stavka>
            <stavka>
                <artikalNaziv>ergerherherh</artikalNaziv>
                <id>1</id>
                <kolicina>2.5</kolicina>
                <podstavke>
                    <grupa>475</grupa>
                    <id>458</id>
                    <nazivPodstavke>rehtrthrthrth</nazivPodstavke>
                </podstavke>
                <podstavke>
                    <grupa>86</grupa>
                    <id>56</id>
                    <nazivPodstavke>ergergerg</nazivPodstavke>
                </podstavke>
            </stavka>
            <stavka>
                <artikalNaziv>ergergergerg</artikalNaziv>
                <id>2</id>
                <kolicina>5.5</kolicina>
                <podstavke>
                    <grupa>866</grupa>
                    <id>783</id>
                    <nazivPodstavke>ewefwefwef</nazivPodstavke>
                </podstavke>
                <podstavke>
                    <grupa>86</grupa>
                    <id>56</id>
                    <nazivPodstavke>ergergergeg</nazivPodstavke>
                </podstavke>
                <podstavke>
                    <grupa>869</grupa>
                    <id>75</id>
                    <nazivPodstavke>ergergergeg</nazivPodstavke>
                </podstavke>
            </stavka>
 
Odgovor na temu

JPF
Beograd

Član broj: 3542
Poruke: 37
213.137.124.*



+2 Profil

icon Re: Java Persistence query - pomoc27.05.2009. u 21:24 - pre 181 meseci
Prevashodno sam mislio na @OneToMany/@ManyToOne anotacije.

Pogledaj recimo http://www.devx.com/Java/Article/33906/0/page/2, a imaš i gomilu knjiga koje pokrivaju JPA (Java Persistence API).
 
Odgovor na temu

[es] :: Java :: Java Persistence query - pomoc

[ Pregleda: 1609 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.