Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Desktop application i problem ze zmianą query

0 views
Skip to first unread message

Wito

unread,
Oct 10, 2008, 6:27:49 AM10/10/08
to
Witam

Zrobiłem przykład bardzo podobny do tego
http://www.java-forums.org/new-java/6822-my-simple-refresh-problem.html
ale podobnie jak autor ww wątku nie umiem wstawić do query innego
select-a

Chciałem osiągną efekt taki że po naciśnięciu przycisku w tabeli
pojawiają się rezultaty zapytania do bazy z jakimś kreteriu np "SELECT
p FROM Prawa p WHERE p.ID_PRAWA>1005". Dodam ze w tabeli sa juz dane z
bazy

Myślełem, że poniższa metoda to załatwi ale się pomyliłem:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

query1 = entityManager1.createQuery("SELECT p FROM Prawa p WHERE
p.ID_PRAWA>1005");
list1 = query1.getResultList();

}

Jak to rozwiązać bo narazie to tylko mam komunikat: An exception
occured while creating a query in EntityManager

Brzezi

unread,
Oct 10, 2008, 5:04:03 AM10/10/08
to
pią, 10 paź 2008 o 12:27 GMT, Wito napisał(a):
> Jak to rozwiązać bo narazie to tylko mam komunikat: An exception
> occured while creating a query in EntityManager

Jezeli to jakis ("any") wyjatek, to trudno cos poradzic, chyba ze powiesz
jaki konkretnie wyjatek, to bedzie mozna cos pomyslec...

Pozdrawiam
Brzezi
--
[ E-mail: brz...@enter.net.pl ][ ]
[ Ekg: #3781111 ][ ]
[ LinuxUser: #249916 ][ ]

Wito

unread,
Oct 10, 2008, 6:44:47 AM10/10/08
to

Proszę bardzo cały komunikt


Exception in thread "AWT-EventQueue-0"
java.lang.IllegalArgumentException: An exception occured while


creating a query in EntityManager

at
oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:
209)

Jacek Laskowski

unread,
Oct 10, 2008, 6:46:46 AM10/10/08
to
Wito wrote:

> query1 = entityManager1.createQuery("SELECT p FROM Prawa p WHERE
> p.ID_PRAWA>1005");
> list1 = query1.getResultList();
>
> }
>
> Jak to rozwiązać bo narazie to tylko mam komunikat: An exception
> occured while creating a query in EntityManager

Strzelam w ciemno, ale coś mi mówi, że albo powinieneś skorzystać z
createNativeQuery, albo zamiast ID_PRAWA użyć nazwy atrybutu encji
(nazwa pola, bądź metody bez get) zamiast nazwy kolumny. Sądzę, że
ID_PRAWA to sprawa bazodanowa, a JPA odczytuje metadane do swojego
działania z encji.

Jacek

--
Jacek Laskowski
Notatnik Projektanta Java EE - http://www.JacekLaskowski.pl

Wito

unread,
Oct 10, 2008, 7:01:10 AM10/10/08
to


Zrobiłem query1 = entityManager1.createNativeQuery("SELECT * FROM
Prawa p WHERE Id_Prawa>1005"); ale teraz tabela się nie odswieża

Brzezi

unread,
Oct 10, 2008, 7:01:38 AM10/10/08
to
pią, 10 paź 2008 o 13:01 GMT, Wito napisał(a):

>> > query1 = entityManager1.createQuery("SELECT p FROM Prawa p WHERE
>> > p.ID_PRAWA>1005");
>> > list1 = query1.getResultList();
>

> Zrobiłem query1 = entityManager1.createNativeQuery("SELECT * FROM
> Prawa p WHERE Id_Prawa>1005"); ale teraz tabela się nie odswieża

Czyli teraz juz nie ma bledu?

hmm, w przykladzie kodu ktory podales, masz przypisanie listy pobranej z
bazy, ale nic dalej z nia nie robisz, teraz musisz odswierzyc
komponent/model ktory ja wyswietla...

Pozdrawiam
Brzezi
--
[ E-mail: brz...@enter.net.pl ][ GEEK CODE [Version: 3.12]: GCM dpu s+:- ]
[ Ekg: #3781111 ][ a--- C+++ UL++ P+ L+++ E--- W+++ N+++ ]
[ LinuxUser: #249916 ][ o-- K- w--- O-- M- V- PS PE Y PGP--- t+ ]
[ 5- X++ R* tv+ b- DI- D+ G+ e- h! r y-- ]

Wito

unread,
Oct 10, 2008, 7:16:39 AM10/10/08
to

Kurcze slaby jestem w javie. Mam cos takiego

query1 = entityManager1.createNativeQuery("SELECT * FROM Prawa p WHERE
Id_Prawa>1005");

list1 = query1.getResultList();
jTable1.repaint();

ale i tak nie odswieza

Maciej Bodus

unread,
Oct 10, 2008, 9:53:49 AM10/10/08
to
Wito pisze:

> jTable1.repaint();
> ale i tak nie odswieza

a model do tabelki podmieniłeś ? Podepnij sobie javadoc do swojego
środowiska deweloperskiego

pozdr
maciej

Wito

unread,
Oct 10, 2008, 2:19:34 PM10/10/08
to

tzn "a model do tabelki podmieniłeś ?"
Jaki model?
O encje chodzi?

W przykładach generowanych z Netbeans widziałem że to dego celu
(odswiezenie) wykorzystywana jest metoda fireProperityChange (lub
bardzo podobnie)

Proszę wytłumacz mi o co chodzi?

Maciej Bodus

unread,
Oct 11, 2008, 8:57:54 AM10/11/08
to
Wito pisze:

> tzn "a model do tabelki podmieniłeś ?"
> Jaki model?
> O encje chodzi?
o model danych dla obiektu tabelki

> W przykładach generowanych z Netbeans widziałem że to dego celu
> (odswiezenie) wykorzystywana jest metoda fireProperityChange (lub
> bardzo podobnie)
>
> Proszę wytłumacz mi o co chodzi?

generalnie chodzi o to że podszedłeś do sprawy od d*** strony. Zacznij od przeczytania tutoriala do
swinga na stronie Sun. Jeśli nie będziesz miał podstaw swinga (a z tego co widzę to nie masz) to
będziesz się co chwile spotykać z takimi problemami.

Do tabelki wystarczy: google.com -> swing jtable model. Pierwszy wynik z góry


pozdrawiam
Maciej

ps. nie traktuj mojego posta jako złośliwości tylko raczej jako dobrą radę.

Wito

unread,
Oct 13, 2008, 1:54:54 AM10/13/08
to
On 11 Paź, 14:57, Maciej Bodus

Tak czytałem o tym modelu, ale u mnie czegoś takiego chyba nie ma.
Może napiszę jak zrobiłem tą prostą aplikację

W Netbeans wybrałem nowy projekt/Java/Desktop application/Database
application. Tak powstał jakiś prosty formularz na podstawie bazy
firebird prezentujący dane z prostej tabelki słownikowej.
Teraz chciałem sprawdzić czy mogę zmienić query i wyświetlić inne dane
po naciśnięciu buttona.
Jedyne co jest w takim projekcie to: EntityManager Query i
QueryResult.

W akcji buttona zapisałem coś takiego ale ukazuje się tabelka z
kilkoma wieszami ale bez danych (tak jakby stworzyć wiersze ale bez
danych)

list1.clear();

query1 = entityManager1.createNativeQuery("SELECT * FROM Prawa p
WHERE Id_Prawa>1005");

list1.addAll(query1.getResultList()); // =
query1.getResultList();

jTable1.repaint();

Więc może mógłbyś mi wskazać gdzie w takim projekcie może być ten
model.
Tutoriala swinga napewno przeczytam


0 new messages