Thread View: pl.comp.lang.java
12 messages
12 total messages
Started by MaxZorin
Tue, 05 Jun 2012 17:26
select w jpa
Author: MaxZorin
Date: Tue, 05 Jun 2012 17:26
Date: Tue, 05 Jun 2012 17:26
9 lines
1197 bytes
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
Author: Tomek Łabuz
Date: Tue, 05 Jun 2012 17:42
Date: Tue, 05 Jun 2012 17:42
19 lines
1529 bytes
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
Author: MaxZorin
Date: Tue, 05 Jun 2012 18:51
Date: Tue, 05 Jun 2012 18:51
27 lines
2195 bytes
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
Author: Bogusław Szczepanowski
Date: Tue, 05 Jun 2012 18:56
Date: Tue, 05 Jun 2012 18:56
19 lines
1520 bytes
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
Author: Tomek Łabuz
Date: Tue, 05 Jun 2012 19:28
Date: Tue, 05 Jun 2012 19:28
7 lines
1321 bytes
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
Author: Tomek Łabuz
Date: Tue, 05 Jun 2012 19:44
Date: Tue, 05 Jun 2012 19:44
20 lines
1880 bytes
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
Author: MaxZorin
Date: Tue, 05 Jun 2012 20:27
Date: Tue, 05 Jun 2012 20:27
56 lines
2878 bytes
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
Author: Tomek Łabuz
Date: Tue, 05 Jun 2012 21:04
Date: Tue, 05 Jun 2012 21:04
16 lines
1851 bytes
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
Author: MaxZorin
Date: Tue, 05 Jun 2012 21:11
Date: Tue, 05 Jun 2012 21:11
26 lines
2346 bytes
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
Author: MaxZorin
Date: Tue, 05 Jun 2012 21:44
Date: Tue, 05 Jun 2012 21:44
25 lines
2441 bytes
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
Author: Tomasz Łabuz
Date: Wed, 06 Jun 2012 06:24
Date: Wed, 06 Jun 2012 06:24
8 lines
1545 bytes
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
Author: Tomasz Łabuz
Date: Wed, 06 Jun 2012 06:50
Date: Wed, 06 Jun 2012 06:50
15 lines
1966 bytes
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