SpringBoot整合Mybatis,如果表是组合主键,怎么解决?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

SpringBoot整合Mybatis,如果表是组合主键,怎么解决?报错

爱吃鱼的程序员 2020-06-08 11:12:33 26

1. 我的基础Mapper如下:

public interface Mapper<T> extends BaseMapper<T>, ConditionMapper<T>,
        IdsMapper<T>,
        InsertListMapper<T>,
        RowBoundsMapper<T>,
        Marker {
}

2. mysql有张表[master], 主键是hotelid+accnt, 我的model如下:

public class Master {
    /**
     * 酒店标识
     */
    @Id
    private String hotelid;

    /**
     * accnt
     */
    @Id
    private String accnt;

    ......
}

3. 启动的时候报错:

Caused by: tk.mybatis.mapper.MapperException: 继承 deleteByIds 方法的实体类[com.sun.demo.modules.model.Master]中必须只有一个带有 @Id 注解的字段
    at tk.mybatis.mapper.provider.IdsProvider.deleteByIds(IdsProvider.java:43) ~[mapper-3.4.0.jar:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_131]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
    at tk.mybatis.mapper.mapperhelper.MapperTemplate.setSqlSource(MapperTemplate.java:237) ~[mapper-3.4.0.jar:na]
    ... 29 common frames omitted

4. 请问: 组合主键,应该怎么解决?【前提,我的表主键必须是hotelid+accnt】

Java 关系型数据库 MySQL 数据库连接 mybatis
分享到
取消 提交回答
全部回答(1)
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题