[QUOTE=Landei]Ja, das ist die Idee.
Ich vermeide wo immer möglich, nackte IDs herumzureichen (wer garantiert, dass es wirklich eine ID von Entity ist?), würde also die Signatur getPictures(Entity e)
empfehlen.[/QUOTE]
[QUOTE=CyborgGamma;115507]Ja und dadurch sollte nun der GC in der Lage seien, nicht mehr benötigte Bilder auch wieder aufzuräumen, da diese ja dann nicht mehr Bestandteil der Entität sind.
Ob man nun die ID oder die Entität übergibt ist denke ich Geschmackssache. Wenn es die ID nicht gibt, bekommt man halt eine leere Liste, das selbe ist auch der Fall, falls es zu einer Entität kein Bild gibt. Beim übergeben einer Entität, müsste jedoch vor dem Zugriff auf die ID noch ein null-check gemacht werden.[/QUOTE]Gibt es denn eine Art Leitfaden bzw. Best Practice was direkt in das Entity geschrieben und per Annotations verknüpft werden sollte und was man lieber auslagert und das DBMS arbeiten lässt?
[QUOTE=SlaterB;115509]ohne konkrete Anwendung dazu ein Gedanke, der hier glaube ich noch nicht formuliert ist (vielleicht zurecht ):
nicht bei der noch recht komplizierten und Konsistenz-/ Einstellungen-/ Transaktion-/ Mapping-/ OO-, einfach allgemein-wichtigen Verknüpfung Entity zu Pictures rumspielen,
da alles nach besten Standardmechanismen arbeiten lassen,
→ aber diese Pictures zu leichtgewichtigen Einträgen machen, beliebig in Tabellen und sonstigen allgemeinen Mechanismen zu durchlaufen,
normale wichtige Datenfelder zu bearbeiten, Name, Länge des Bilds als Attribute eingetragen usw., alles ohne das Speicherloch Bild dazu[/QUOTE]Thx für den Post, aber den ersten Teil kann ich nicht ganz nachvollziehen wiel ich nicht verstehe was du mir versuchst zu sagen Kannst du es bitte nochmal in einfach vrsuchen?
[QUOTE=maki;115510]Mit mehr Code koennte man konkretere Antworten geben, so bleibt eigentlich nur zu sagen dass der EnitityMananger die Entsprechung einer Session ist, die „Lebenszeit“ sollte kurz sein, da alle Entites die nicht explizit enladen wurden vorgehalten (referenziert) werden.[/QUOTE]Was fehlt dir denn?
@Entity
class TestEntity{
private List<Pic> picList;
@OneToMany(mappedby="entity", fetch=LAZY, orphanremoval=true, cascade=ALL)
@OnDeletion(action=OnDeletionAction.CASCADE)
public List<Pic> getPicList(){
return picList;
}
}
@Entity
class Pic{
private TestEntity entity;
@ManyToOne(fetch=LAZY)
@JOINColumn(name="entityID", nullable=false)
public TestEntity getEntity(){
return entity;
}