baomidou / mybatis-plus

An powerful enhanced toolkit of MyBatis for simplify development
https://baomidou.com
Apache License 2.0
16.3k stars 4.3k forks source link

建议支持联合主键 #5697

Closed frozenfield closed 11 months ago

frozenfield commented 11 months ago

建议能支持联合主键,我有一个老项目,几百个实体,联合主键非常多,我想用mybatis-plus把ORM层替下来却发现没有办法实现。 有人做了mybatisplus-plus来支持,但需要额外再引一个包,还是很麻烦。 隔壁mybatis-flex也支持了联合主键查询,如果MP不支持,我可能不得已去用隔壁的组件了。 PS:不建议和不支持是两回事,建议在功能上支持这么做~

miemieYaho commented 11 months ago

那你去用隔壁的吧

frozenfield commented 11 months ago

那你去用隔壁的吧 。。。这回复绝了,开源项目不就是三人行必有我师吗,至少也是师夷长技以制夷,提个有好建议就这样?呵呵哒。

spirit223 commented 4 months ago

虽然MP官网很明确的说明不使用联合主键, 但是在某些场景下还是不得不去使用联合主键, 使用联合主键时会警告 Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. 对于联合主键的PO类正常情况下不会使用getXXXById, 但是我想是否有方法能够屏蔽该警告信息, 我实在不想每次启动都需要花费精力在这个警告信息上

frozenfield commented 4 months ago

虽然MP官网很明确的说明不使用联合主键, 但是在某些场景下还是不得不去使用联合主键, 使用联合主键时会警告 Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. 对于联合主键的PO类正常情况下不会使用getXXXById, 但是我想是否有方法能够屏蔽该警告信息, 我实在不想每次启动都需要花费精力在这个警告信息上

日志可以通过logback过滤掉tableid警告的,但比较新版本的mp已经不允许多个tableid注解了,启动不了。如果只是很少的联合主键,可以不去给这个表做tableid注解;如果一定要用联合主键,可以通过mp提供的方法注入配合自定义注解再扩展basemapper来实现,这个有开源的例子