hibernate 根据某一列数据去重

作者: 垃圾简书_吃枣药丸 | 来源:发表于2018-04-10 14:35 被阅读10次

其实这种方式不局限于hibernate

problem:
项目中遇到好几次这种问题,需要根据某个字段去重,也就是查出来的某个字段必须的值必须都是unique的。

因为sql去重必须是整条数据所有字段完全相同才能去重,所以无法直接通过distinct根据某一列去重。

Solution:
给这个表添加一个标识列,表示某条数据能够代表一组数据,在插入数据的时候可以判断一下这个值是否可以作为标识列,可以的话则设置为true,否则false,之后在查询的时候可以加上这个条件,那么查出来的效果就相当于根据某一列去重。

“example: ”
table:

采购商 供应商 商品
采购商1 供应商1 goods1
采购商1 供应商1 goods3
采购商1 供应商1 goods4
采购商1 供应商2 goods5

采购商需要查询与自己绑定关系的供应商,这个时候需要根据供应商列进行去重,所以可以加一个标识列,当采购商跟这个供应商第一次绑定关系的时候把这个标识列设置true

采购商 供应商 商品 是否标识列
采购商1 供应商1 goods1 true
采购商1 供应商1 goods3 false
采购商1 供应商1 goods4 false
采购商1 供应商2 goods5 true

当查询的时候把标识列为true的查出来就行。

条条大路通罗马,一定要发散思维。

相关文章

网友评论

    本文标题:hibernate 根据某一列数据去重

    本文链接:https://www.haomeiwen.com/subject/rvstextx.html