[GORM] addRelatedObjectByID

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

[GORM] addRelatedObjectByID

Beitrag von Screeze » 28.02.2010, 19:16:45

Was ich mir wünschen würde, wäre eine Methode:

Code: Alles auswählen

$GenericDomainObject->addRelatedObjectByID($relationName, $objectID);


Denn:
ich habe mehrfach den fall, dass beim erstellen eines objekts nur die ID der zu verknüpfenden objekte vorhanden ist, und mehr auch garnicht gebraucht wird.
Mit bisherigem verfahren muss ich also erst das Objekt aus der datenbank laden, um danach das ganze in die db speichern zu können.
Das wird auf Dauer ganzschön unperformant.

Spricht etwas gegen die Implementierung dieser Funktion?

Grüsse,
Ralf

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: [GORM] addRelatedObjectByID

Beitrag von dr.e. » 28.02.2010, 19:43:03

Hallo Ralf,

hatte ich das nicht in der Doku geschrieben, dass man dazu nicht das komplette Objekt braucht? :? Du kannst das auch ohne Laden des Objektes wie folgt tun:

Code: Alles auswählen

$user = new GenericDomainObject('User');
$user->setProperty('UserID',1);
$group->addRelatedObject('User2Group',$user);
$orm->saveObject($group);

Dabei ist $group ein Objekt, das aus der DB geladen wurde, $user ist ein neu erzeugtes Objekt. Du kannst sogar die Methode createAssociation() auch so ausführen:

Code: Alles auswählen

$user = new GenericDomainObject('User');
$user->setProperty('UserID',1);
$group = new GenericDomainObject('Group');
$group->setProperty('GroupID',2);
$orm->createAssociation('User2Group',$user,$group);

Der GORM braucht zur Erzeugung einer Beziehung nur die ID des Objektes. Injizierst du diese "manuell", reicht das bereits. Sofern das für deinen Anwendungsfall passt, schreibe ich ein kurzes HOWTO ins Wiki.
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [GORM] addRelatedObjectByID

Beitrag von Screeze » 28.02.2010, 19:47:30

Hmm doch ich glaub da war mal was - ich erinner mich wieder.

Das ist zwar etwas besser - da keine DB-abfrage zusätzlich, aber so wird ein neues Objekt erstellt, was auch nur ein workaround ist, meiner Meinung nach.

Verwenden kann ichs theoretisch schon so, aber so ganz mag mir das nicht gefallen ;)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: [GORM] addRelatedObjectByID

Beitrag von dr.e. » 28.02.2010, 20:02:30

Dann fürchte ich, muss du dich noch etwas mit objektorientierten APIs anfreunden. ;) Bei der schönen API des GORM jetzt wieder Methoden mit untypisierten Parametern einzuführen halte ich für einen Fehler.

Und: die paar Objekte neu zu erzeugen kostet weder übermäßig CPU noch Speicher - das ist absolut kein Problem.
Viele Grüße,
Christian


Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast