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
Author: greg
Date: Tue, 01 Nov 2011 17:34
Date: Tue, 01 Nov 2011 17:34
119 lines
5108 bytes
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
Author: Jacek Czerwinski
Date: Tue, 01 Nov 2011 19:14
Date: Tue, 01 Nov 2011 19:14
44 lines
2719 bytes
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
Author: greg
Date: Fri, 04 Nov 2011 16:45
Date: Fri, 04 Nov 2011 16:45
58 lines
3148 bytes
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
Author: Jacek Czerwinski
Date: Fri, 04 Nov 2011 17:20
Date: Fri, 04 Nov 2011 17:20
81 lines
4197 bytes
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
Author: greg
Date: Tue, 08 Nov 2011 19:30
Date: Tue, 08 Nov 2011 19:30
97 lines
4584 bytes
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