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
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 ][ ]
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)
> 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
Zrobiłem query1 = entityManager1.createNativeQuery("SELECT * FROM
Prawa p WHERE Id_Prawa>1005"); ale teraz tabela się nie odswież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-- ]
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
a model do tabelki podmieniłeś ? Podepnij sobie javadoc do swojego
środowiska deweloperskiego
pozdr
maciej
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?
> 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ę.
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