ibatis проверяет существование перед созданием стоимости

0

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

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

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

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

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

Теги:
ibatis

1 ответ

1
Лучший ответ

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

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

  • 0
    Я обычно не люблю EAVs - но в этом случае нельзя избежать. Я пойду на предмет «вставить при обновлении дубликата ключа» - не знал об этом - спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню