PropertyAccessException

Status
Nicht offen für weitere Antworten.

GilbertGrape

Bekanntes Mitglied
Hallo,

ich hab mal wieder ein Problem mit Hibernate.

Ich habe eine n-1 Beziehung zwischen Paragraph und DetailText. Das heißt ein Paragraph hat viele DetailTexts und und ein DetailText gehört genau zu einem Paragraph.

meine Beziehungen sehen wie folgt aus:

in Klasse Paragraph:
Code:
@OneToMany(mappedBy="paragraph", cascade= CascadeType.ALL, fetch=FetchType.EAGER)
	@JoinColumn(name="paragraph")
	public List<DetailText> getDetailTexts() {
		return detailTexts;
	}

in Klasse DetailText:
Code:
@ManyToOne
	@JoinColumn(name="paragraph")
	public Paragraph getParagraph() {
		return paragraph;
	}

Jetzt habe ich versucht, einen Paragraph abzuspeichern. Das hat auch geklappt und er hat auch die entsprechenden DetailTexts gespeichert, allerdings ohne den Bezug zum Paragraphen. Deshalb wollte ich jetzt in der setter-Methode den Paragraph setzen:

Code:
public void setDetailTexts(List<DetailText> detailTexts) {
		this.detailTexts = detailTexts;
		if (this.detailTexts != null){
			for(DetailText detText : this.detailTexts){
				detText.setParagraph(this);
			}
		}
	}

Dabei kommt jetzt folgende Exception:
org.hibernate.PropertyAccessException: Exception occurred inside setter of persist.Paragraph.detailTexts
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: org.hibernate.LazyInitializationException: illegal access to loading collection

Ich hab hier auch schonmal nachgeschaut, aber ich wüsste nicht was das davon sein soll. Und mit der LazyInitializationException versteh ich auch nicht. Hab doch alles auf Eager.

Weiß jemand Rat?
 
M

maki

Gast
Sollte der FetchType nicht bei getParagraph angegeben sein?

Mit Eager sollte ma zurückhaltend sein, persönlich nutze ich lieber die attribute anstatt der Setter zum "annotieren".
 

GilbertGrape

Bekanntes Mitglied
Ich arbeite mit den Objekten die meiste Zeit außerhalb der Transactions, deshalb hab ichs überall Eager. Ich weiß nicht wie ich das sonst machen soll ... :bahnhof:

Wenn ich bei getParagraph auch Eager dran mache, passiert das gleiche.

Und das mit den Annotations ist doch nur Geschmackssache oder? Ich habs von einigen so und von anderen so gelesen.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben