1
回答
SpringBoot整合Mybatis,如果表是组合主键,怎么解决
华为云实践训练营,热门技术免费实践!>>>   

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】

举报
伤心的小汉
发帖于3个月前 1回/126阅
顶部