ďťż
 
EJB3 problem z mapowaniem kolumn ďťż
 
EJB3 problem z mapowaniem kolumn
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

EJB3 problem z mapowaniem kolumn



dampel - 16-02-2007 00:01
EJB3 problem z mapowaniem kolumn
  Witam,

Pisze sobie takiego Entity Beana, ktory ma w srodku kolekcje innych
Entity, czyli cos takiego:

@Entity
@Table(name = "BOOK")
public class BookEntity {
@Column(name = "RECID")
@Id private long id;
@OneToMany (mappedBy = "book", fetch = FetchType.EAGER, cascade =
{CascadeType.ALL})
private Collection<PageEntity> pagesInternal = new
ArrayList<PageEntity>();

// problem :
private PageEntity[] pages;
....
}

@Entity
@Table(name = "PAGE")
public class PageEntity {
@Column(name = "RECID")
@Id private long id;
@ManyToOne
@JoinColumn(name = "BOOKID")
private BookEntity book;

....
}

Problem mam taki, ze chcialbym aby zmienna pages nie byla mapowana na
zadna kolumne do bazy danych. Ktos moze wie jak to rozwiazac ?? Jakas
annotacja bo nic konkretnego nie moge znalesc.
Potrzebuje to aby dane przetransportowac do C# przez WebService, wiec
robie w metodzie webowej foreach po pagesInternal i przekladam do
tablicy pages...

Moze troche namieszalem, a moze nie ... ;)

--
Pozdrawiam
dampel





MiSt - 16-02-2007 00:01

  dampel napisał(a):
> Witam,
>

> Problem mam taki, ze chcialbym aby zmienna pages nie byla mapowana na
> zadna kolumne do bazy danych. Ktos moze wie jak to rozwiazac ?? Jakas
> annotacja bo nic konkretnego nie moge znalesc.

Zobacz adnotacje: @Transient

--
MiSt




dampel - 16-02-2007 00:01

  MiSt wrote:
> Zobacz adnotacje: @Transient
>

dzieki za podpowiedz ... juz probowalem ale przy probie przelozenia
obiektow z kolekcji pagesInternal do tablicy pages:

pages = new PagesEntity[pagesInternal.size()];
pagesInternal.toArray(pages);

dostaje exception:

ERROR [[BookService]] Servlet.service() for servlet BookService threw
exception
java.lang.StackOverflowError
at java.util.WeakHashMap.get(WeakHashMap.java:340)
at
org.jboss.xb.binding.introspection.ClassInfos.getC lassLoaderCache(ClassInfos.java:165)
at
org.jboss.xb.binding.introspection.ClassInfos.getC lassInfo(ClassInfos.java:110)
at
org.jboss.xb.binding.introspection.FieldInfo.getFi eldInfo(FieldInfo.java:125)
at
org.jboss.xb.binding.sunday.marshalling.Marshaller Impl.getJavaValue(MarshallerImpl.java:1216)
at
org.jboss.xb.binding.sunday.marshalling.Marshaller Impl.getChildren(MarshallerImpl.java:1206)
at
org.jboss.xb.binding.sunday.marshalling.Marshaller Impl.getElementValue(MarshallerImpl.java:1136)

Wyglada mi to ze nie da sie przelozyc obiektow z kolekcji do tablicy.
Wydaje mi sie, ze wymaga to innego podejscia ... chyba kolekcja pages
powinna byc z obiektow @Embeddable a nie @Entity ...
Bede cos kombinowal dalej.

--
Pozdrawiam
dampel




shmayek - 16-02-2007 00:01

  dampel wrote:
> pages = new PagesEntity[pagesInternal.size()];
> pagesInternal.toArray(pages);
>
> dostaje exception:
>
> ERROR [[BookService]] Servlet.service() for servlet BookService threw
> exception
> java.lang.StackOverflowError
>
> Wyglada mi to ze nie da sie przelozyc obiektow z kolekcji do tablicy.
> Wydaje mi sie, ze wymaga to innego podejscia ... chyba kolekcja pages
> powinna byc z obiektow @Embeddable a nie @Entity ...

Wyglada na to ze exception leci z powodu "zapetlania sie obiektow".
Jeden obiekt (Book) zawiera kolekcje innych obiektow (Pages), ktore z
kolei zawieraja referencje do obiektu wlasciciela (Book).
Mysle ze tu trzeba szukac przyczyny problemow (niestety nie wiem jak to
rozwiazac).

--
shmayek
GT: shm PL





Bartek Soin - 16-02-2007 00:02

  Wyrzuć pole book z klasy PageEntity albo oznacz je jako lazy:

public class PageEntity {

....
@ManyToOne(fetch = FetchType.LAZY)
private BookEntity book;

....

}




dampel - 17-02-2007 00:16

  Bartek Soin wrote:
> Wyrzuć pole book z klasy PageEntity albo oznacz je jako lazy:
>

Witam,

Dzieki za podpowiedzi.
Niestety nie pomaga wyrzucenie pola book z PageEntity, poniewaz mam relacje:

public class BookEntity {
....

@OneToMany (mappedBy = "book", fetch = FetchType.EAGER, cascade =
{CascadeType.ALL})
private Collection<PageEntity> pagesInternal = new
ArrayList<PageEntity>();

....
}

Oznaczenie jako LAZY tez nie bo przy pagesInternal.toArray(pages);
nastepuje pobranie danych.
Jedynie co pomaga w takim przypadku to zrobienie konstruktora z
wszystkimi paramatrami klasy PageEntity za wyjatkiem zmiennej book lub
ustawieniem jej na null i do kolekcji pages stworzenie nowych obiektow.

A moze ktos wie jak zamapowac do WSDL'a np. java.util.Collection ??

--
Pozdrawiam
dampel
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?= [postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?= [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • absolwenci.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com