2009-08-24 5 views
0

Ich habe eine Eigenschaft Definitionstabelle und zweiten, dass die tatsächlichen Eigenschaftswerte gilt:ibatis Prüfung für exist vor Wert zu schaffen

table propdef: id, name, description 
table props: id, propdefid, userid, value 

So kann ich dynamisch Eigenschaften für meine Benutzer erstellen kann. Wenn ich eine Eigenschaft für einen Benutzer aktualisieren möchte, muss ich die Props-Tabelle überprüfen, ob eine propdefid/userid Zeile existiert und dann entweder update oder create für diese verwenden.

Im Moment bin ich zuerst Abfrage der db und dann entscheiden, was in meinem Java-Code zu tun. Gibt es eine Möglichkeit, dies in der ibatis sqlmap zu tun - ohne zusätzliche Logik in meinem Java-Code?

Ich verwende mysql als db.

Antwort

1

, bevor Sie weiter gehen, müssen Sie diesen Artikel stoppen und zu lesen: http://tonyandrews.blogspot.com/2004/10/otlt-and-eav-two-big-design-mistakes.html

, wenn Sie immer noch, dass EAV entscheiden ist der Weg zu gehen, gibt es noch Hoffnung. Ich kann nicht auf der ibatis/Java-Ebene beraten, aber ich kann Ihnen sagen, INSERT ... ON DUPLICATE KEY UPDATE zu sehen. das ändert deine zwei Aussagen in eins.

+0

Normalerweise mag ich EAVs nicht - aber in diesem Fall kann nicht vermieden werden. Ich werde für die "Einfügen auf doppelte Schlüsselaktualisierung" -Ding gehen - wusste nicht darüber - danke! – Niko