-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 
Author Message
 Post subject: Lazy-fetching bei Annotations ausschalten?!
PostPosted: Wed Feb 06, 2008 4:38 pm 
Newbie

Joined: Wed Feb 06, 2008 4:29 pm
Posts: 2
Ich schlage mich nun mal wieder mit dem Thema "lazy.loading"
herum. Bin auf Annotations "umgestiegen", habe nun allerdings
wieder das Problem mit lazy-loading...

Bei der xml-Version (.hbm.xml) konnte ich einfach
<class name="..." table="..." lazy="false">

einfügen, oder in der hibernate.cfg.xml
default-lazy="false"
eingeben.

Das selbe Problem habe ich nun mit den Annotations, wie kann
ich dort das Lazy-Loading ausschalten?!
Am besten in der hibernate.cfg.xml bei
<mapping class="..." />

Das lazy-loading macht mich als default nochmal verrückt!!!


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 06, 2008 6:37 pm 
Regular
Regular

Joined: Thu Jun 08, 2006 5:32 pm
Posts: 52
Wenns eine Collection ist mit

org.hibernate.annotations.@LazyCollection(LazyCollectionOption.TRUE)

bei OneToOne- oder ManyToOne-Beziehungen mit Hilfe von

@org.hibernate.annotations.LazyToOne(value = LazyToOneOption.FALSE)

Einen guten Überblick über die Annotations findest du unterfolgenden Link: http://www.galileocomputing.de/artikel/ ... position-2

_________________
http://nocxsville.myminicity.com/


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 07, 2008 6:16 am 
Newbie

Joined: Wed Feb 06, 2008 4:29 pm
Posts: 2
Bei einer Collection ist es kein Problem, das habe ich mit
@CollectionOfElements(fetch=FetchType.EAGER)
private List<Integer> auflistung = new Vector<Integer>();
gelöst.

Das Problem ist, dass ich eine Anzahl von Objekten in einen Vector
laden möchte und diese dann ausgeben möchte.
Allerdings klappt das durch das lazy-loading nicht!
Wenn ich beim Laden eines Objektes alle Attribute z.B. durch
ein System.out ausgebe klappt es, aber das wär wirklich eine
schlechte Notlösung...

Ich möchte, dass ein Entity immer komplett mit all seinen Atributen
geladen werden soll!! Mit der klasse.hbm.xml war das ja auch kein
Problem (<class name="..." table="..." lazy="false">).
Wie kann ich das allerdings mit Annotations machen??!!

Nochmal zu meinem Pronlem:
Ich möchte eine Anzahl von Objekten (mit mehrerern Atributen und
einer Collection) komplett in einen Vector laden und diesen dann
in einer Schleife ausgeben. Wie erzwinge ich, dass das Objekt (@Entity)
komplett geladen wird?!


Top
 Profile  
 
 Post subject:
PostPosted: Sun Feb 10, 2008 3:41 am 
Expert
Expert

Joined: Thu Jul 05, 2007 9:38 am
Posts: 287
Hi,
Hibernate.initialize() könnte dir helfen. Es initialisiert ein Objekt vollständig. Allerdings nur das Objekt. Collections und Referenzen müssten noch einmal separat initialisiert werden.

Jens

_________________
Please rate useful posts.


Schauderhaft: Softwaredevelopment, Projectmanagement, Qualitymanagement and all things "schauderhaft"


Top
 Profile  
 
 Post subject:
PostPosted: Sun Feb 10, 2008 6:33 am 
Newbie

Joined: Tue Jun 28, 2005 10:20 am
Posts: 15
Wenn ich das richtig verstanden habe, möchtest du das eimal global einstellen. Das hab ich noch nie gemacht. Ich benutze da immer das Attribut fetch und setze es auf FetchTaype.EAGER
z.b so:
@ManyToMany(fetch=FetchType.EAGER)
Ansonsten hab ich da nur eine Vrmutung das globales setzen mit einer XML-Configuration geht. siehe hier:
http://www.hibernate.org/hib_docs/annotations/reference/en/html/xml-overriding.html#xml-overriding-principles


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.