ibatis在创建值之前检查是否存在

时间:2009-08-24 22:10:14

标签: mysql ibatis

我有一个属性定义表,第二个用于保存实际的属性值:

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

这样我就可以为我的用户动态创建属性。当我想为用户更新属性时,如果存在propdefid / userid行,则必须检查props表,然后使用update或create。

现在我首先查询数据库,然后决定在我的java代码中做什么。有没有办法在ibatis sqlmap中做到这一点 - 我的java代码中没有额外的逻辑?

我使用mysql作为db。

1 个答案:

答案 0 :(得分:1)

在你走得更远之前,你需要停下来阅读这篇文章:http://tonyandrews.blogspot.com/2004/10/otlt-and-eav-two-big-design-mistakes.html

如果您仍然认为EAV是可行的方式,那么仍有希望。我无法在ibatis / java级别提供建议,但我可以告诉您查看INSERT ... ON DUPLICATE KEY UPDATE。这会将你的两个陈述改为一个。

相关问题