🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
12 messages
12 total messages Started by MaxZorin Tue, 05 Jun 2012 17:26
select w jpa
#153463
Author: MaxZorin
Date: Tue, 05 Jun 2012 17:26
9 lines
1197 bytes
Dziwny jest ten sql używany w jpa, że się tak wyrażę. Poczytałem 
dlaczego i może nawet rozumiem.
Moje pytanie dotyczy takiej kwestii:
jeśli napiszę "select t from tabela t" to dostaję wszystko w formie 
obiektu (tak w ogólności).
Natomiast jak jak zrobić coś takiego:
"select t.nazwa from tabela t" ?
Gdzie nazwa to po prostu jedno pole. Chcę to potem władować do 
<h:selectOneMenu>
Re: select w jpa
#153464
Author: Tomek Łabuz
Date: Tue, 05 Jun 2012 17:42
19 lines
1529 bytes
W dniu 2012-06-05 19:26, MaxZorin pisze:
> Dziwny jest ten sql używany w jpa, że się tak wyrażę. 

może dlatego, że to nie sql?

Poczytałem
> dlaczego i może nawet rozumiem.
> Moje pytanie dotyczy takiej kwestii:
> jeśli napiszę "select t from tabela t" to dostaję wszystko w formie
> obiektu (tak w ogólności).

bo to nie jest "select t from tabela t" tylko "select t from objekt t"

> Natomiast jak jak zrobić coś takiego:
> "select t.nazwa from tabela t" ?
> Gdzie nazwa to po prostu jedno pole. Chcę to potem władować do

no i zrobiłeś, efektem działania jest wartość tego pola np w postaci
java.lang.String
Re: select w jpa
#153465
Author: MaxZorin
Date: Tue, 05 Jun 2012 18:51
27 lines
2195 bytes
W dniu 2012-06-05 19:42, Tomek Łabuz pisze:
> W dniu 2012-06-05 19:26, MaxZorin pisze:
>> Dziwny jest ten sql używany w jpa, że się tak wyrażę.
>
> może dlatego, że to nie sql?
wiem choć trochę mi to zajęło
>
> Poczytałem
>> dlaczego i może nawet rozumiem.
>> Moje pytanie dotyczy takiej kwestii:
>> jeśli napiszę "select t from tabela t" to dostaję wszystko w formie
>> obiektu (tak w ogólności).
>
> bo to nie jest "select t from tabela t" tylko "select t from objekt t"
również i do tego doszedłem
>
>> Natomiast jak jak zrobić coś takiego:
>> "select t.nazwa from tabela t" ?
>> Gdzie nazwa to po prostu jedno pole. Chcę to potem władować do
>
> no i zrobiłeś, efektem działania jest wartość tego pola np w postaci
> java.lang.String
>
No i właśnie tu jest problem. To wogóle nie działa. Dostaję komunikat, 
że nie ma takiej zmiennej jak [nazwa] (cytuję z pamięci). Stąd zdziwko i 
brak pomysłu co dalej.
Może to wina serwera i jego jakiejś specyfiki? Używam apache-tomcat-7.0.20
Re: select w jpa
#153466
Author: Bogusław Szczepanowski
Date: Tue, 05 Jun 2012 18:56
19 lines
1520 bytes
Dnia 05-06-2012 o 20:51:42 MaxZorin <maxorin@poczta.onet.pl> napisał(a):

>>> Natomiast jak jak zrobić coś takiego:
>>> "select t.nazwa from tabela t" ?
>>> Gdzie nazwa to po prostu jedno pole. Chcę to potem władować do
>>
>> no i zrobiłeś, efektem działania jest wartość tego pola np w postaci
>> java.lang.String
>>
> No i właśnie tu jest problem. To wogóle nie działa. Dostaję komunikat,  
> że nie ma takiej zmiennej jak [nazwa] (cytuję z pamięci). Stąd zdziwko i  
> brak pomysłu co dalej.

Z tego co pamiętam, to zwraca tablicę obiektów typów "prostych". Może  
najłatwiej
będzie sprawdzić w debuggerze?

-- 
Boguś
Re: select w jpa
#153468
Author: Tomek Łabuz
Date: Tue, 05 Jun 2012 19:28
7 lines
1321 bytes
> No i właśnie tu jest problem. To wogóle nie działa. Dostaję komunikat,
> że nie ma takiej zmiennej jak [nazwa] (cytuję z pamięci). Stąd zdziwko i
> brak pomysłu co dalej.
> Może to wina serwera i jego jakiejś specyfiki? Używam apache-tomcat-7.0.20

to może nie cytuj z pamięci tylko zapodaj klasę encyjną, do której
odwołuje się to zapytanie
Re: select w jpa
#153467
Author: Tomek Łabuz
Date: Tue, 05 Jun 2012 19:44
20 lines
1880 bytes
W dniu 2012-06-05 20:56, Bogusław Szczepanowski pisze:
> Dnia 05-06-2012 o 20:51:42 MaxZorin <maxorin@poczta.onet.pl> napisał(a):
> 
>>>> Natomiast jak jak zrobić coś takiego:
>>>> "select t.nazwa from tabela t" ?
>>>> Gdzie nazwa to po prostu jedno pole. Chcę to potem władować do
>>>
>>> no i zrobiłeś, efektem działania jest wartość tego pola np w postaci
>>> java.lang.String
>>>
>> No i właśnie tu jest problem. To wogóle nie działa. Dostaję komunikat,
>> że nie ma takiej zmiennej jak [nazwa] (cytuję z pamięci). Stąd zdziwko
>> i brak pomysłu co dalej.
> 
> Z tego co pamiętam, to zwraca tablicę obiektów typów "prostych". Może
> najłatwiej
> będzie sprawdzić w debuggerze?

wynik zależy od kilku rzeczy np od sposobu wykonania zapytania ale tu widzę
problem po prostu z nieznajomością tematu i błędnej konstrukcji zapytania
Re: select w jpa
#153469
Author: MaxZorin
Date: Tue, 05 Jun 2012 20:27
56 lines
2878 bytes
W dniu 2012-06-05 21:28, Tomek Łabuz pisze:
>> No i właśnie tu jest problem. To wogóle nie działa. Dostaję komunikat,
>> że nie ma takiej zmiennej jak [nazwa] (cytuję z pamięci). Stąd zdziwko i
>> brak pomysłu co dalej.
>> Może to wina serwera i jego jakiejś specyfiki? Używam apache-tomcat-7.0.20
>
> to może nie cytuj z pamięci tylko zapodaj klasę encyjną, do której
> odwołuje się to zapytanie
Cytuję z pamięci bo nie mogę tego uruchomić na kompie z którego teraz 
piszę. W pracy mogłem :( Wszystkie dane z tabeli (obiektu) wyświetlały 
się w <h:dataTable>
z tym, że dane pobieram tak (w klasie Material):
[...]
public MatDesignation[] getNames() {
         EntityManager em = JPAResourceBean.getEMF().createEntityManager();
         Query query = em.createQuery("select md from MatDesignation md");
         return (MatDesignation[]) query.getResultList().toArray(new 
MatDesignation[0]);
}
[...]

A encja wygląda tak:
@Entity
@Table(name="t_mat_designation")
@NamedQueries({
     @NamedQuery(name="MatDesignation.getAllMatDesignations", 
query="SELECT md FROM MatDesignation md"),
     @NamedQuery(name="MatDesignation.getAllNames", query="SELECT md 
FROM MatDesignation md"),
     })
public class MatDesignation implements Serializable {
     @Id
     @Column(name="id")
     private Long id;

     @Column(name="name")
     private String name;

     @Column(name="werkstoff")
     private String werkstoff;

     public MatDesignation() {
     }

     public MatDesignation(Long id) {
         this.id = id;
     }

     public String getName() {
         return name;
     }

     public String getWerkstoff() {
         return werkstoff;
     }
}
Re: select w jpa
#153470
Author: Tomek Łabuz
Date: Tue, 05 Jun 2012 21:04
16 lines
1851 bytes
W dniu 2012-06-05 22:27, MaxZorin pisze:
> W dniu 2012-06-05 21:28, Tomek Łabuz pisze:
>>> No i właśnie tu jest problem. To wogóle nie działa. Dostaję komunikat,
>>> że nie ma takiej zmiennej jak [nazwa] (cytuję z pamięci). Stąd zdziwko i
>>> brak pomysłu co dalej.
>>> Może to wina serwera i jego jakiejś specyfiki? Używam
>>> apache-tomcat-7.0.20
>>
>> to może nie cytuj z pamięci tylko zapodaj klasę encyjną, do której
>> odwołuje się to zapytanie
> Cytuję z pamięci bo nie mogę tego uruchomić na kompie z którego teraz
> piszę. W pracy mogłem :( Wszystkie dane z tabeli (obiektu) wyświetlały
> się w <h:dataTable>

zaczynam odnosić wrażenie, że problem leży w jsf a nie w jpa, bo nie
zauważyłem abyś w którymś zapytaniu użył obiekt.pole, ale mogę się mylić...
Re: select w jpa
#153471
Author: MaxZorin
Date: Tue, 05 Jun 2012 21:11
26 lines
2346 bytes
W dniu 2012-06-05 23:04, Tomek Łabuz pisze:
> W dniu 2012-06-05 22:27, MaxZorin pisze:
>> W dniu 2012-06-05 21:28, Tomek Łabuz pisze:
>>>> No i właśnie tu jest problem. To wogóle nie działa. Dostaję komunikat,
>>>> że nie ma takiej zmiennej jak [nazwa] (cytuję z pamięci). Stąd zdziwko i
>>>> brak pomysłu co dalej.
>>>> Może to wina serwera i jego jakiejś specyfiki? Używam
>>>> apache-tomcat-7.0.20
>>>
>>> to może nie cytuj z pamięci tylko zapodaj klasę encyjną, do której
>>> odwołuje się to zapytanie
>> Cytuję z pamięci bo nie mogę tego uruchomić na kompie z którego teraz
>> piszę. W pracy mogłem :( Wszystkie dane z tabeli (obiektu) wyświetlały
>> się w<h:dataTable>
>
> zaczynam odnosić wrażenie, że problem leży w jsf a nie w jpa, bo nie
> zauważyłem abyś w którymś zapytaniu użył obiekt.pole, ale mogę się mylić...
No nie użyłem bo nie działa. Moje pytanie dotyczy właśnie tego jak to 
zrobić by działało. mam tak:

public String [chyba nie String a jakaś lista?] getNames1() {
         EntityManager em = JPAResourceBean.getEMF().createEntityManager();
         Query query = em.createQuery("select md.name from 
MatDesignation md");
         return [i co tutaj?]
     }
Re: select w jpa
#153474
Author: MaxZorin
Date: Tue, 05 Jun 2012 21:44
25 lines
2441 bytes
W dniu 2012-06-05 23:04, Tomek Łabuz pisze:
> W dniu 2012-06-05 22:27, MaxZorin pisze:
>> W dniu 2012-06-05 21:28, Tomek Łabuz pisze:
>>>> No i właśnie tu jest problem. To wogóle nie działa. Dostaję komunikat,
>>>> że nie ma takiej zmiennej jak [nazwa] (cytuję z pamięci). Stąd zdziwko i
>>>> brak pomysłu co dalej.
>>>> Może to wina serwera i jego jakiejś specyfiki? Używam
>>>> apache-tomcat-7.0.20
>>>
>>> to może nie cytuj z pamięci tylko zapodaj klasę encyjną, do której
>>> odwołuje się to zapytanie
>> Cytuję z pamięci bo nie mogę tego uruchomić na kompie z którego teraz
>> piszę. W pracy mogłem :( Wszystkie dane z tabeli (obiektu) wyświetlały
>> się w<h:dataTable>
>
> zaczynam odnosić wrażenie, że problem leży w jsf a nie w jpa, bo nie
> zauważyłem abyś w którymś zapytaniu użył obiekt.pole, ale mogę się mylić...
Kurcze, poszło per analogia:
     public String[] getNames1() {
         EntityManager em = JPAResourceBean.getEMF().createEntityManager();
         Query query = em.createQuery("select md.name from 
MatDesignation md");
         return (String[]) query.getResultList().toArray(new String[0]);
     }
Dzięki wszystkim za pomoc i inspirację. Muszę się jeszcze dokształcić.
Re: select w jpa
#153472
Author: Tomasz Łabuz
Date: Wed, 06 Jun 2012 06:24
8 lines
1545 bytes
>> zaczynam odnosić wrażenie, że problem leży w jsf a nie w jpa, bo nie
>> zauważyłem abyś w którymś zapytaniu użył obiekt.pole, ale mogę się
>> mylić...
> No nie użyłem bo nie działa. Moje pytanie dotyczy właśnie tego jak to
> zrobić by działało. mam tak:

no ale jak chcesz żeby ktoś Ci pomógł to pisz to co Ci nie działa a nie 
to co działa, bo inaczej przecież ciężko ocenić dlaczego coś nie działa...
Re: select w jpa
#153473
Author: Tomasz Łabuz
Date: Wed, 06 Jun 2012 06:50
15 lines
1966 bytes
W dniu 2012-06-06 08:24, Tomasz Łabuz pisze:
>>> zaczynam odnosić wrażenie, że problem leży w jsf a nie w jpa, bo nie
>>> zauważyłem abyś w którymś zapytaniu użył obiekt.pole, ale mogę się
>>> mylić...
>> No nie użyłem bo nie działa. Moje pytanie dotyczy właśnie tego jak to
>> zrobić by działało. mam tak:
>
> no ale jak chcesz żeby ktoś Ci pomógł to pisz to co Ci nie działa a nie
> to co działa, bo inaczej przecież ciężko ocenić dlaczego coś nie działa...

i jeszcze jedno w kwesti jpa/hibernate i tego podobnych
nie traktuj ich jako nakładki na bazę danych, bo możesz się zdziwić
np inną kolejnością operacji bazodanowych niż wynikałoby to z kodu, ich 
brakiem chociaż teoretycznie w kodzie masz pobranie obiektu...
ot takie słodkości umilające szarą, codzienną rzeczywistość :)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads