2009-08-24 6 views
0

У меня есть таблица определения собственности и второй, который содержит фактические значения свойств:проверки Ibatis для существовать до создания стоимости

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

Таким образом я могу динамически создавать свойства для моих пользователей. Когда я хочу обновить свойство для пользователя, я должен проверить таблицу реквизитов, если существует строка propdefid/userid, а затем либо использовать обновление, либо создать на нем.

Прямо сейчас я сначала запрашиваю db, а затем решаю, что делать в моем java-коде. Есть ли способ сделать это в ibatis sqlmap - без дополнительной логики в моем java-коде?

Я использую mysql как db.

ответ

1

, прежде чем идти дальше, вам нужно остановиться и прочитать эту статью: http://tonyandrews.blogspot.com/2004/10/otlt-and-eav-two-big-design-mistakes.html

, если вы все-таки решили, что EAV это путь, все еще есть надежда. я не могу посоветовать на уровне ibatis/java, но я могу сказать вам посмотреть INSERT ... ON DUPLICATE KEY UPDATE. это изменит ваши два утверждения в одном.

+0

Мне обычно не нравятся EAV - но в этом случае нельзя избежать. Я поеду на предмет «вставить на дубликат ключевого обновления» - не знал об этом - спасибо! – Niko