JdbcRepositoryWrapperTenant.java
5.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
package com.taover.repository;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import com.taover.repository.exception.MultiRowException;
import com.taover.repository.exception.NoContainTenantException;
import com.taover.repository.exception.NotFoundException;
public interface JdbcRepositoryWrapperTenant<T, ID extends Serializable> {
/**
* 按主键查询
*/
public T findEntityByID(ID id, Long tenantId) throws NotFoundException;
/**
* 按主键查询
* isLock 是否锁定, 默认不锁
* fromWriteDB 是否从写库读写,默认从读库查询
*/
public T findEntityByID(ID id, Long tenantId, boolean isLock) throws NotFoundException;
/**
* 根据条件List<Object[]>查询
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public T findEntityByCondition(List<Object[]> condition) throws NotFoundException,MultiRowException,NoContainTenantException;
/**
* 根据条件sql查询
* sqlCondition 为where 后面的条件。
*/
public T findEntityBySql(String sqlCondition) throws NotFoundException,MultiRowException,NoContainTenantException;
/**
* 根据条件List<Object[]>查询
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public List<T> findListByCondition(List<Object[]> condition) throws NoContainTenantException;
/**
* 根据条件List<Object[]>查询
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public List<T> findListByCondition(List<Object[]> condition, String sortCondition) throws NoContainTenantException;
/**
* 根据条件sql查询
* sqlCondition 为where 后面的条件。
*/
public List<T> findListBySql(String sqlCondition) throws NoContainTenantException;
/**
* 按条件分页查询
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public Map<String, Object> findPageByCondition(List<Object[]> condition, int page, int pageSize) throws NoContainTenantException;
/**
* 按条件分页查询
* Object[]数组长度是3
* Object[]第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
* boolean isUseCache, 是否用缓存,默认用。
* boolean isAddCache, 是否添加缓存,默认添加。
*/
public Map<String, Object> findPageByCondition(List<Object[]> condition, String sortCondition, int page, int pageSize) throws NoContainTenantException;
/**
* 按sql分页查询, sqlCondition为where 后条件sql
*/
public Map<String, Object> findPageBySql(String sqlCondition, int page, int pageSize) throws NoContainTenantException;
/**
* 添加
*/
public void addEntity(T entity);
/**
* 批量添加
* @throws Exception
*/
public void addEntityList(List<T> entityList);
/**
* 按ID删除
*/
public int deleteEntityByID(ID id, Long tenantId);
/**
* 删除按List<Object[]>条件
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public int deleteEntityByCondition(List<Object[]> condition) throws NoContainTenantException;
/**
* 删除按condition条件
* 建议使用deleteTByCondition(List<Object[]> condition), 如果removeTByCondition(List<Object[]> condition)满足不了where条件可以使用此方法。
* condition为where后面的条件,condition不能为空。
*/
public int deleteEntityBySql(String sqlCondition) throws NoContainTenantException;
/**
* 根据list对象逐个删除。
* @throws NoContainTenantException
*/
public int deleteEntityList(List<ID> idList, Long tenantId) throws NoContainTenantException;
/**
* 根据ID修改指定的值
*/
public int updateEntityById(List<Object[]> changeList, ID id, Long tenantId);
/**
* List<Object[]> updateObj 要修改成的值,数组长度为2,第一个值为列名,第二个值是要改成的值。
* List<Object[]> condition 修改的条件, 数组长度是3, 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public int updateEntityByCondition(List<Object[]> updateObj, List<Object[]> condition) throws NoContainTenantException;
/**
* List<Object[]> updateObj 要修改成的值,数组长度为2,第一个值为列名,第二个值是要改成的值。
* String sqlCondition 修改的条件。
*/
public int updateEntityBySql(List<Object[]> updateObj, String sqlCondition) throws NoContainTenantException;
/**
* 获取分页数据
* @param coreSql
* @param orderByPartSql
* @param page
* @param pageSize
* @return
*/
public Map<String, Object> getPageData(String coreSql, String orderByPartSql, Integer page, Integer pageSize) throws NoContainTenantException;
/**
* 获取分页数据
* @param selectSql
* @param fromAndWhereSql
* @param orderByPartSql
* @param page
* @param pageSize
* @return
*/
public Map<String, Object> getPageData(String selectSql, String fromAndWhereSql, String orderByPartSql, Integer page, Integer pageSize) throws NoContainTenantException;
}