Skip to content

Commit 7c04901

Browse files
committed
Merge branch 'master' of github.com:zoooooway/mapper into zoooooway-master
2 parents 812623c + 6efdc5a commit 7c04901

File tree

13 files changed

+891
-120
lines changed

13 files changed

+891
-120
lines changed

common/src/main/java/io/mybatis/common/core/Code.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class Code {
2828
public static final I18n.Language LANG = I18n.language(CODE_BUNDLE);
2929
public static final Code SUCCESS = new Code("00000");
3030
public static final Code FAILURE = new Code("M0100");
31-
public static final Code UNKONWN = new Code("M0200");
31+
public static final Code UNKNOWN = new Code("M0200");
3232
public static final Code SAVE_FAILURE = new Code("M0201");
3333
public static final Code UPDATE_FAILURE = new Code("M0202");
3434
public static final Code DELETE_FAILURE = new Code("M0203");

common/src/main/java/io/mybatis/common/core/Response.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ public static Response ok() {
4747
}
4848

4949
public static Response error() {
50-
return error(Code.UNKONWN);
50+
return error(Code.UNKNOWN);
5151
}
5252

5353
public static Response error(String code) {
5454
return error(code, I18n.message(RESPONSE_BUNDLE, code));
5555
}
5656

5757
public static Response error(Throwable t) {
58-
return error(Code.UNKONWN.getCode(), t.getMessage());
58+
return error(Code.UNKNOWN.getCode(), t.getMessage());
5959
}
6060

6161
public static Response error(ServiceException e) {

common/src/main/resources/mybatis_common_code_en.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#
1616
00000=Success
1717
M0100=Failure
18-
M0200=Unkonwn
18+
M0200=Unknown
1919
M0201=Save failure
2020
M0202=Update failure
2121
M0203=Delete failure

common/src/test/java/io/mybatis/common/util/I18nTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public void testCode() {
2828
Locale.setDefault(Locale.CHINA);
2929
org.junit.Assert.assertEquals("操作成功", Code.SUCCESS.getMessage());
3030
org.junit.Assert.assertEquals("操作失败", Code.FAILURE.getMessage());
31-
org.junit.Assert.assertEquals("未知错误", Code.UNKONWN.getMessage());
31+
org.junit.Assert.assertEquals("未知错误", Code.UNKNOWN.getMessage());
3232
org.junit.Assert.assertEquals("保存失败", Code.SAVE_FAILURE.getMessage());
3333
org.junit.Assert.assertEquals("修改失败", Code.UPDATE_FAILURE.getMessage());
3434
org.junit.Assert.assertEquals("删除失败", Code.DELETE_FAILURE.getMessage());

mapper/src/main/java/io/mybatis/mapper/fn/FnMapper.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,22 @@ public interface FnMapper<T> {
4848
* 根据实体字段条件查询唯一的实体({@link io.mybatis.mapper.example.ExampleMapper} 可以实现一样的功能,当前方法只是示例)
4949
*
5050
* @param entity 实体类
51-
* @param selectFileds 查询的字段,不区分字段是否为 null,通过 {@link Fn#of(Fn...)} 创建 {@link Fn.Fns}
51+
* @param selectFields 查询的字段,不区分字段是否为 null,通过 {@link Fn#of(Fn...)} 创建 {@link Fn.Fns}
5252
* @return 单个实体,查询结果由多条时报错
5353
*/
5454
@Lang(Caching.class)
5555
@SelectProvider(type = FnProvider.class, method = "selectColumns")
56-
Optional<T> selectColumnsOne(@Param("entity") T entity, @Param("fns") Fn.Fns<T> selectFileds);
56+
Optional<T> selectColumnsOne(@Param("entity") T entity, @Param("fns") Fn.Fns<T> selectFields);
5757

5858
/**
5959
* 根据实体字段条件批量查询({@link io.mybatis.mapper.example.ExampleMapper} 可以实现一样的功能,当前方法只是示例)
6060
*
6161
* @param entity 实体类
62-
* @param selectFileds 查询的字段,不区分字段是否为 null,通过 {@link Fn#of(Fn...)} 创建 {@link Fn.Fns}
62+
* @param selectFields 查询的字段,不区分字段是否为 null,通过 {@link Fn#of(Fn...)} 创建 {@link Fn.Fns}
6363
* @return 实体列表
6464
*/
6565
@Lang(Caching.class)
6666
@SelectProvider(type = FnProvider.class, method = "selectColumns")
67-
List<T> selectColumns(@Param("entity") T entity, @Param("fns") Fn.Fns<T> selectFileds);
67+
List<T> selectColumns(@Param("entity") T entity, @Param("fns") Fn.Fns<T> selectFields);
6868

6969
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.mybatis.mapper.logical;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
/**
9+
* 标记该字段为逻辑状态列
10+
* <p>NOTE: 单张表中仅支持标记一个字段。并且,该字段最好是满足@Entity.Column(updatable = false, insertable = false),这样可以避免其他更新方法误更新逻辑删除状态</p>
11+
*
12+
* @author hzw
13+
*/
14+
@Retention(RetentionPolicy.RUNTIME)
15+
@Target(ElementType.FIELD)
16+
public @interface LogicalColumn {
17+
/**
18+
* 表示逻辑删除的值,比如null、0
19+
*/
20+
String delete();
21+
}
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
package io.mybatis.mapper.logical;
2+
3+
import io.mybatis.mapper.BaseMapper;
4+
import io.mybatis.mapper.example.Example;
5+
import io.mybatis.mapper.fn.Fn;
6+
import io.mybatis.mapper.fn.FnMapper;
7+
import io.mybatis.provider.Caching;
8+
import org.apache.ibatis.annotations.*;
9+
import org.apache.ibatis.cursor.Cursor;
10+
import org.apache.ibatis.session.RowBounds;
11+
12+
import java.io.Serializable;
13+
import java.util.List;
14+
import java.util.Optional;
15+
16+
/**
17+
* 逻辑删除的 Mapper 方法
18+
* <p>继承此mapper会覆盖BaseMapper、FnMapper中的查、删、改相关方法</p>
19+
*
20+
* @author hzw
21+
*/
22+
public interface LogicalMapper<T, I extends Serializable> extends BaseMapper<T, I>, FnMapper<T> {
23+
/* BaseMapper +++ */
24+
25+
@Override
26+
@Lang(Caching.class)
27+
@UpdateProvider(type = LogicalProvider.class, method = "updateByPrimaryKeySelectiveWithForceFields")
28+
int updateByPrimaryKeySelectiveWithForceFields(@Param("entity") T entity, @Param("fns") Fn.Fns<T> forceUpdateFields);
29+
30+
/* BaseMapper --- */
31+
32+
/* FnMapper +++ */
33+
34+
@Override
35+
@Lang(Caching.class)
36+
@SelectProvider(type = LogicalProvider.class, method = "selectColumns")
37+
Optional<T> selectColumnsOne(@Param("entity") T entity, @Param("fns") Fn.Fns<T> selectFields);
38+
39+
@Override
40+
@Lang(Caching.class)
41+
@SelectProvider(type = LogicalProvider.class, method = "selectColumns")
42+
List<T> selectColumns(@Param("entity") T entity, @Param("fns") Fn.Fns<T> selectFields);
43+
44+
/* FnMapper --- */
45+
46+
/* EntityMapper +++ */
47+
48+
@Override
49+
@Lang(Caching.class)
50+
@DeleteProvider(type = LogicalProvider.class, method = "deleteByPrimaryKey")
51+
int deleteByPrimaryKey(I id);
52+
53+
@Override
54+
@Lang(Caching.class)
55+
@DeleteProvider(type = LogicalProvider.class, method = "delete")
56+
int delete(T entity);
57+
58+
@Override
59+
@Lang(Caching.class)
60+
@UpdateProvider(type = LogicalProvider.class, method = "updateByPrimaryKey")
61+
int updateByPrimaryKey(T entity);
62+
63+
@Override
64+
@Lang(Caching.class)
65+
@UpdateProvider(type = LogicalProvider.class, method = "updateByPrimaryKeySelective")
66+
int updateByPrimaryKeySelective(T entity);
67+
68+
@Override
69+
@Lang(Caching.class)
70+
@SelectProvider(type = LogicalProvider.class, method = "selectByPrimaryKey")
71+
Optional<T> selectByPrimaryKey(I id);
72+
73+
@Override
74+
@Lang(Caching.class)
75+
@SelectProvider(type = LogicalProvider.class, method = "select")
76+
Optional<T> selectOne(T entity);
77+
78+
@Override
79+
@Lang(Caching.class)
80+
@SelectProvider(type = LogicalProvider.class, method = "select")
81+
List<T> selectList(T entity);
82+
83+
@Override
84+
@Lang(Caching.class)
85+
@SelectProvider(type = LogicalProvider.class, method = "selectCount")
86+
long selectCount(T entity);
87+
88+
/* EntityMapper --- */
89+
90+
/* CursorMapper +++ */
91+
92+
@Override
93+
@Lang(Caching.class)
94+
@SelectProvider(type = LogicalProvider.class, method = "select")
95+
Cursor<T> selectCursor(T entity);
96+
97+
@Override
98+
@Lang(Caching.class)
99+
@SelectProvider(type = LogicalProvider.class, method = "selectByExample")
100+
Cursor<T> selectCursorByExample(Example<T> example);
101+
102+
/* CursorMapper --- */
103+
104+
/* ExampleMapper +++ */
105+
@Override
106+
default Example<T> example() {
107+
return BaseMapper.super.example();
108+
}
109+
110+
@Override
111+
@Lang(Caching.class)
112+
@DeleteProvider(type = LogicalProvider.class, method = "deleteByExample")
113+
int deleteByExample(Example<T> example);
114+
115+
@Override
116+
@Lang(Caching.class)
117+
@UpdateProvider(type = LogicalProvider.class, method = "updateByExample")
118+
int updateByExample(@Param("entity") T entity, @Param("example") Example<T> example);
119+
120+
@Override
121+
@Lang(Caching.class)
122+
@UpdateProvider(type = LogicalProvider.class, method = "updateByExampleSetValues")
123+
int updateByExampleSetValues(@Param("example") Example<T> example);
124+
125+
@Override
126+
@Lang(Caching.class)
127+
@UpdateProvider(type = LogicalProvider.class, method = "updateByExampleSelective")
128+
int updateByExampleSelective(@Param("entity") T entity, @Param("example") Example<T> example);
129+
130+
@Override
131+
@Lang(Caching.class)
132+
@SelectProvider(type = LogicalProvider.class, method = "selectByExample")
133+
List<T> selectByExample(Example<T> example);
134+
135+
@Override
136+
@Lang(Caching.class)
137+
@SelectProvider(type = LogicalProvider.class, method = "selectByExample")
138+
Optional<T> selectOneByExample(Example<T> example);
139+
140+
@Override
141+
@Lang(Caching.class)
142+
@SelectProvider(type = LogicalProvider.class, method = "countByExample")
143+
long countByExample(Example<T> example);
144+
145+
@Override
146+
List<T> selectByExample(Example<T> example, RowBounds rowBounds);
147+
148+
/* ExampleMapper --- */
149+
}

0 commit comments

Comments
 (0)