🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
5 messages
5 total messages Started by greg Tue, 01 Nov 2011 17:34
Problem z relacjami w derby
#153097
Author: greg
Date: Tue, 01 Nov 2011 17:34
119 lines
5108 bytes
Witam
Nie jestem programistą java tylko pasjonuje mnie programowanie i uczę się
programować w tym języku. Stworzyłem już dwa programy z wykorzystaniem
języka java i bazy danych derby ale do tej pory nie używałem relacji  
OneToOne, OneToMany, ManyToOne w klasie komunikacji z
bazią danych, tworzyłem tabele w których zam określałem klucze obce i  
główne ale relacje
obsługiwałem z wykorzystaniem javy.

Teraz postanowiłem zająć stworzyć kolejny projekt korzystając z obsługi  
relacji w bazie danych. Do tego celu wykorzystuje OneToOne oraz OneToMany.  
Program się uruchamia, choć nie zawsze, ale nie mogę w programie dodać  
żadnych danych zastanawiam się czy dobrze stworzyłem klasy komunikujące  
się z bazą danych Derby.

Zamieszczam kod klas usuwając pola tekstowe i pola z wartościami  
liczbowych aby ułatwić czytanie kodu

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "TYPE")
@Table(name = "DBKOLEINOWANIE", catalog = "", schema = "APP")
public class dbKoleinowanie implements Serializable {
     private static final long serialVersionUID = 1L;
     @Id
     @GeneratedValue(strategy = GenerationType.AUTO)
     @Column(name = "ID")
     private Long id;
     ...
     @OneToMany(cascade=CascadeType.ALL, mappedBy = "dbKoleinowanie",  
targetEntity=dbKoleinowaniePozycje.class)
     @JoinColumn(name = "KOLEINOWANIEPOZYCJE")//, nullable=false)
     @PrimaryKeyJoinColumn
     private List<dbKoleinowaniePozycje> dbKoleinowaniePoz;// = null;
     @OneToOne(targetEntity=dbRecepty.class)
     @JoinColumn(name = "RECEPTY")
     private dbRecepty recepty;
     ...
     public Long getId() {
         return id;
     }
     public void setId(Long id) {
         this.id = id;
     }
     public List<dbKoleinowaniePozycje> getDbKoleinowaniePoz() {
         return dbKoleinowaniePoz;
     }
     public void setDbKoleinowaniePoz(List<dbKoleinowaniePozycje>  
dbKoleinowaniePoz) {
         this.setDbKoleinowaniePoz(dbKoleinowaniePoz);
     }
     public dbRecepty getRecepty() {
         return recepty;
     }
     public void setRecepty(dbRecepty recepty) {
         this.recepty = recepty;
     }
     ...
}

@Entity
@Table(name = "DBKOLEINOWANIEPOZYCJE", catalog = "", schema = "APP")
public class dbKoleinowaniePozycje implements Serializable {
     private static long serialVersionUID = 1L;

     @Id
     @GeneratedValue(strategy = GenerationType.AUTO)
     @Column(name = "ID")
     private Long id;
     @ManyToOne(optional=false,targetEntity=dbKoleinowanie.class)
     @JoinColumn(name = "KOLEINOWANIE_ID")//, referencedColumnName =  
"KOLEINOWANIEPOZYCJE")
     private dbKoleinowanie dbKoleinowanie;
     ...
     public Long getId() {
         return id;
     }
     public void setId(Long id) {
         this.id = id;
     }
     public dbKoleinowanie getDbKoleinowanie() {
         return dbKoleinowanie;
     }
     public void setDbKoleinowanie(dbKoleinowanie dbKoleinowanie) {
         this.dbKoleinowanie = dbKoleinowanie;
     }

}
Program się uruchamia albo dostaje takie komunikaty o błędach


Komunikat 1
java.lang.IllegalArgumentException: An exception occurred while creating a
query in EntityManager:
Exception Description: Error compiling the query [select object(o) from
dbKoleinowanie as o]. Unknown entity type [dbKoleinowanie].

Komunikat 2
Exception [EclipseLink-30005] (Eclipse Persistence Services -
2.0.1.v20100213-r6600):
org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while searching for
persistence archives with ClassLoader:
sun.misc.Launcher$AppClassLoader@1cde100
Internal Exception: javax.persistence.PersistenceException: Exception
[EclipseLink-28018] (Eclipse Persistence Services -
2.0.1.v20100213-r6600):
org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [badaniaDrogowePU]
failed.
Internal Exception: Exception [EclipseLink-7250] (Eclipse Persistence
Services - 2.0.1.v20100213-r6600):
org.eclipse.persistence.exceptions.ValidationException
Exception Description: [class tabelebazy.dbKoleinowanie] uses a non-entity
[class tabelebazy.dbKoleinowaniePozycje] as target entity in the
relationship attribute [field dbKoleinowaniePoz].

-- 
Grzegorz
Re: Problem z relacjami w derby
#153098
Author: Jacek Czerwinski
Date: Tue, 01 Nov 2011 19:14
44 lines
2719 bytes
W dniu 2011-11-01 18:34, greg pisze:
> Witam
> Nie jestem programistą java tylko pasjonuje mnie programowanie i uczę się
> programować w tym języku. Stworzyłem już dwa programy z wykorzystaniem
> języka java i bazy danych derby ale do tej pory nie używałem relacji
> OneToOne, OneToMany, ManyToOne w klasie komunikacji z
> bazią danych, tworzyłem tabele w których zam określałem klucze obce i
> główne ale relacje
> obsługiwałem z wykorzystaniem javy.
>
> Teraz postanowiłem zająć stworzyć kolejny projekt korzystając z obsługi
> relacji w bazie danych. Do tego celu wykorzystuje OneToOne oraz
> OneToMany. Program się uruchamia, choć nie zawsze, ale nie mogę w
> programie dodać żadnych danych zastanawiam się czy dobrze stworzyłem
> klasy komunikujące się z bazą danych Derby.
>
> Zamieszczam kod klas usuwając pola tekstowe i pola z wartościami
> liczbowych aby ułatwić czytanie kodu
>
> @Entity
> @Inheritance(strategy = InheritanceType.JOINED)
> @DiscriminatorColumn(name = "TYPE")
> @Table(name = "DBKOLEINOWANIE", catalog = "", schema = "APP")
> public class dbKoleinowanie implements Serializable {
...
> Komunikat 1
> java.lang.IllegalArgumentException: An exception occurred while creating a
> query in EntityManager:
> Exception Description: Error compiling the query [select object(o) from
> dbKoleinowanie as o]. Unknown entity type [dbKoleinowanie].
>

To może oznaczać, że klasa w/w nie jest znana bibliotece JPA (bo wszak o 
tym mówisz??? Widze że idziesz tropem Eclipselink), chyba że drobne 
literówki zachodzą

Ja je zgłaszam do biblioteki (trochę mnie boli, że to klasy Hibernate a 
nie czyste JPA):

	Ejb3Configuration cfg = new Ejb3Configuration();
	cfg.addAnnotatedClass(cls);

Sposobów jest kilka, podanie w XML, automagiczny skan JAR-ów na 
classpath (dość wolne w starcie) itd
Re: Problem z relacjami w derby
#153099
Author: greg
Date: Fri, 04 Nov 2011 16:45
58 lines
3148 bytes
Dnia 01-11-2011 o 20:14:12 Jacek Czerwinski <x@y.z.pl> napisał(a):

> W dniu 2011-11-01 18:34, greg pisze:
>> Witam
>> Nie jestem programistą java tylko pasjonuje mnie programowanie i uczę  
>> się
>> programować w tym języku. Stworzyłem już dwa programy z wykorzystaniem
>> języka java i bazy danych derby ale do tej pory nie używałem relacji
>> OneToOne, OneToMany, ManyToOne w klasie komunikacji z
>> bazią danych, tworzyłem tabele w których zam określałem klucze obce i
>> główne ale relacje
>> obsługiwałem z wykorzystaniem javy.
>>
>> Teraz postanowiłem zająć stworzyć kolejny projekt korzystając z obsługi
>> relacji w bazie danych. Do tego celu wykorzystuje OneToOne oraz
>> OneToMany. Program się uruchamia, choć nie zawsze, ale nie mogę w
>> programie dodać żadnych danych zastanawiam się czy dobrze stworzyłem
>> klasy komunikujące się z bazą danych Derby.
>>
>> Zamieszczam kod klas usuwając pola tekstowe i pola z wartościami
>> liczbowych aby ułatwić czytanie kodu
>>
>> @Entity
>> @Inheritance(strategy = InheritanceType.JOINED)
>> @DiscriminatorColumn(name = "TYPE")
>> @Table(name = "DBKOLEINOWANIE", catalog = "", schema = "APP")
>> public class dbKoleinowanie implements Serializable {
> ...
>> Komunikat 1
>> java.lang.IllegalArgumentException: An exception occurred while  
>> creating a
>> query in EntityManager:
>> Exception Description: Error compiling the query [select object(o) from
>> dbKoleinowanie as o]. Unknown entity type [dbKoleinowanie].
>>
>
> To może oznaczać, że klasa w/w nie jest znana bibliotece JPA (bo wszak o  
> tym mówisz??? Widze że idziesz tropem Eclipselink), chyba że drobne  
> literówki zachodzą
>
> Ja je zgłaszam do biblioteki (trochę mnie boli, że to klasy Hibernate a  
> nie czyste JPA):
>
> 	Ejb3Configuration cfg = new Ejb3Configuration();
> 	cfg.addAnnotatedClass(cls);
>
> Sposobów jest kilka, podanie w XML, automagiczny skan JAR-ów na  
> classpath (dość wolne w starcie) itd
>
Jakim tropem idę to tak na prawdę nie wiem, to trzeba było się spytać  
mojego przyjaciela google co mi pokazuje. Jeżeli możesz podesłać jakieś  
strony z JPA lub gotowy kod do będę wdzięczny.

Bardzo dziękuje za odpowiedz i przepraszam że tak długo się nie odzywałem  
ale nie miałem sił usiąść do kompa po pracy.

-- 
Grzegorz
Re: Problem z relacjami w derby
#153100
Author: Jacek Czerwinski
Date: Fri, 04 Nov 2011 17:20
81 lines
4197 bytes
W dniu 2011-11-04 17:45, greg pisze:
> Dnia 01-11-2011 o 20:14:12 Jacek Czerwinski <x@y.z.pl> napisał(a):
>
>> W dniu 2011-11-01 18:34, greg pisze:
>>> Witam
>>> Nie jestem programistą java tylko pasjonuje mnie programowanie i uczę
>>> się
>>> programować w tym języku. Stworzyłem już dwa programy z wykorzystaniem
>>> języka java i bazy danych derby ale do tej pory nie używałem relacji
>>> OneToOne, OneToMany, ManyToOne w klasie komunikacji z
>>> bazią danych, tworzyłem tabele w których zam określałem klucze obce i
>>> główne ale relacje
>>> obsługiwałem z wykorzystaniem javy.
>>>
>>> Teraz postanowiłem zająć stworzyć kolejny projekt korzystając z obsługi
>>> relacji w bazie danych. Do tego celu wykorzystuje OneToOne oraz
>>> OneToMany. Program się uruchamia, choć nie zawsze, ale nie mogę w
>>> programie dodać żadnych danych zastanawiam się czy dobrze stworzyłem
>>> klasy komunikujące się z bazą danych Derby.
>>>
>>> Zamieszczam kod klas usuwając pola tekstowe i pola z wartościami
>>> liczbowych aby ułatwić czytanie kodu
>>>
>>> @Entity
>>> @Inheritance(strategy = InheritanceType.JOINED)
>>> @DiscriminatorColumn(name = "TYPE")
>>> @Table(name = "DBKOLEINOWANIE", catalog = "", schema = "APP")
>>> public class dbKoleinowanie implements Serializable {
>> ...
>>> Komunikat 1
>>> java.lang.IllegalArgumentException: An exception occurred while
>>> creating a
>>> query in EntityManager:
>>> Exception Description: Error compiling the query [select object(o) from
>>> dbKoleinowanie as o]. Unknown entity type [dbKoleinowanie].
>>>
>>
>> To może oznaczać, że klasa w/w nie jest znana bibliotece JPA (bo wszak
>> o tym mówisz??? Widze że idziesz tropem Eclipselink), chyba że drobne
>> literówki zachodzą
>>
>> Ja je zgłaszam do biblioteki (trochę mnie boli, że to klasy Hibernate
>> a nie czyste JPA):
>>
>> Ejb3Configuration cfg = new Ejb3Configuration();
>> cfg.addAnnotatedClass(cls);
>>
>> Sposobów jest kilka, podanie w XML, automagiczny skan JAR-ów na
>> classpath (dość wolne w starcie) itd
>>
> Jakim tropem idę to tak na prawdę nie wiem,
To szczerze mówiąc widać
 > to trzeba było się spytać
> mojego przyjaciela google co mi pokazuje. Jeżeli możesz podesłać jakieś
> strony z JPA lub gotowy kod do będę wdzięczny.
Z gógla wybierz te spod Suna / Oracla, są nie tylko materiałow 
referencyjne (javadoc), ale i wprowadzenia też.

Spod szyldu Hibernate i Eclipselink  tutoriale nie powinny Ci zrobić 
krzywdy, jeśli nie sprowadzą na boczne dialekty.

Zasadniczo Java jako cały "ekosystem" ma taką urodę, że ciężko będzie 
nabrać prawidłowych wzorów przypadkowo zerkając na wyrywki. Jednak jakaś 
książka, ważna rzecz.

Do Hibernate po polsku jest chyba ciągle wyłącznie stare wydanie Heliona 
do v.2, czyli nie oficjalne JPA, i bez adnotacji. ja osobiście z niej 
skorzystałem na pewnym etapie, ale nie polecam. Są książki o enterprice 
java, ale zbieranina o niczym szczegółowo


Jeśli problem masz na początku (co nie wiem), może za ostro zacząłeś z 
ManyToMany ?




>
> Bardzo dziękuje za odpowiedz i przepraszam że tak długo się nie
> odzywałem ale nie miałem sił usiąść do kompa po pracy.
>
Re: Problem z relacjami w derby
#153101
Author: greg
Date: Tue, 08 Nov 2011 19:30
97 lines
4584 bytes
Dnia 04-11-2011 o 18:20:25 Jacek Czerwinski <x@y.z.pl> napisał(a):

> W dniu 2011-11-04 17:45, greg pisze:
>> Dnia 01-11-2011 o 20:14:12 Jacek Czerwinski <x@y.z.pl> napisał(a):
>>
>>> W dniu 2011-11-01 18:34, greg pisze:
>>>> Witam
>>>> Nie jestem programistą java tylko pasjonuje mnie programowanie i uczę
>>>> się
>>>> programować w tym języku. Stworzyłem już dwa programy z wykorzystaniem
>>>> języka java i bazy danych derby ale do tej pory nie używałem relacji
>>>> OneToOne, OneToMany, ManyToOne w klasie komunikacji z
>>>> bazią danych, tworzyłem tabele w których zam określałem klucze obce i
>>>> główne ale relacje
>>>> obsługiwałem z wykorzystaniem javy.
>>>>
>>>> Teraz postanowiłem zająć stworzyć kolejny projekt korzystając z  
>>>> obsługi
>>>> relacji w bazie danych. Do tego celu wykorzystuje OneToOne oraz
>>>> OneToMany. Program się uruchamia, choć nie zawsze, ale nie mogę w
>>>> programie dodać żadnych danych zastanawiam się czy dobrze stworzyłem
>>>> klasy komunikujące się z bazą danych Derby.
>>>>
>>>> Zamieszczam kod klas usuwając pola tekstowe i pola z wartościami
>>>> liczbowych aby ułatwić czytanie kodu
>>>>
>>>> @Entity
>>>> @Inheritance(strategy = InheritanceType.JOINED)
>>>> @DiscriminatorColumn(name = "TYPE")
>>>> @Table(name = "DBKOLEINOWANIE", catalog = "", schema = "APP")
>>>> public class dbKoleinowanie implements Serializable {
>>> ...
>>>> Komunikat 1
>>>> java.lang.IllegalArgumentException: An exception occurred while
>>>> creating a
>>>> query in EntityManager:
>>>> Exception Description: Error compiling the query [select object(o)  
>>>> from
>>>> dbKoleinowanie as o]. Unknown entity type [dbKoleinowanie].
>>>>
>>>
>>> To może oznaczać, że klasa w/w nie jest znana bibliotece JPA (bo wszak
>>> o tym mówisz??? Widze że idziesz tropem Eclipselink), chyba że drobne
>>> literówki zachodzą
>>>
>>> Ja je zgłaszam do biblioteki (trochę mnie boli, że to klasy Hibernate
>>> a nie czyste JPA):
>>>
>>> Ejb3Configuration cfg = new Ejb3Configuration();
>>> cfg.addAnnotatedClass(cls);
>>>
>>> Sposobów jest kilka, podanie w XML, automagiczny skan JAR-ów na
>>> classpath (dość wolne w starcie) itd
>>>
>> Jakim tropem idę to tak na prawdę nie wiem,
> To szczerze mówiąc widać
>  > to trzeba było się spytać
>> mojego przyjaciela google co mi pokazuje. Jeżeli możesz podesłać jakieś
>> strony z JPA lub gotowy kod do będę wdzięczny.
> Z gógla wybierz te spod Suna / Oracla, są nie tylko materiałow  
> referencyjne (javadoc), ale i wprowadzenia też.

Dzięki

>
> Spod szyldu Hibernate i Eclipselink  tutoriale nie powinny Ci zrobić  
> krzywdy, jeśli nie sprowadzą na boczne dialekty.
>
> Zasadniczo Java jako cały "ekosystem" ma taką urodę, że ciężko będzie  
> nabrać prawidłowych wzorów przypadkowo zerkając na wyrywki. Jednak jakaś  
> książka, ważna rzecz.

Dlatego szukam czegoś dla mnie. Po to było również to pytanie na grupie

>
> Do Hibernate po polsku jest chyba ciągle wyłącznie stare wydanie Heliona  
> do v.2, czyli nie oficjalne JPA, i bez adnotacji. ja osobiście z niej  
> skorzystałem na pewnym etapie, ale nie polecam. Są książki o enterprice  
> java, ale zbieranina o niczym szczegółowo
>
>
> Jeśli problem masz na początku (co nie wiem), może za ostro zacząłeś z  
> ManyToMany ?

Wcale się nie brałem za ManyToMany, narazie próbowałem z OneToOne które  
mniej więcej działa i z OneToMany z którym jest właśnie problem


>>
>> Bardzo dziękuje za odpowiedz i przepraszam że tak długo się nie
>> odzywałem ale nie miałem sił usiąść do kompa po pracy.
>>
>


-- 
Grzegorz
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