mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
doc: 更新数据权限文档,添加注意事项。
This commit is contained in:
parent
dc6928b9ac
commit
016587d18f
@ -16,7 +16,7 @@
|
||||
在自定义方言中,重写 `forSelectByQuery` 方法,这个方法是用于构建返回根据 `QueryWrapper` 查询的方法, 以下是示例代码:
|
||||
|
||||
```java
|
||||
public class MyPermissionDialect extends CommonsDialectImpl{
|
||||
public class MyPermissionDialect extends CommonsDialectImpl {
|
||||
|
||||
@Override
|
||||
public String forSelectByQuery(QueryWrapper queryWrapper) {
|
||||
@ -29,13 +29,25 @@ public class MyPermissionDialect extends CommonsDialectImpl{
|
||||
}
|
||||
```
|
||||
|
||||
特别的,如果您使用的是 `Oracle` 数据库,需要继承 `OracleDialect` 类,示例:
|
||||
|
||||
```java
|
||||
public class MyOraclePermissionDialect extends OracleDialect {
|
||||
|
||||
// 这个构造器只有在 Oracle 12C 的版本下才需要添加。
|
||||
// public MyOraclePermissionDialect() {
|
||||
// super(LimitOffsetProcessor.DERBY);
|
||||
// }
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
在项目启动时,通过 `DialectFactory` 注册 `MyPermissionDialect`:
|
||||
|
||||
```java
|
||||
DialectFactory.registerDialect(DbType.MYSQL, new MyPermissionDialect());
|
||||
DialectFactory.registerDialect(DbType.MYSQL,new MyPermissionDialect());
|
||||
```
|
||||
|
||||
|
||||
**常见问题1:通过重写 `IDialect` 后,所有的查询都添加了条件,但是有些表不需要条件如何做?**
|
||||
|
||||
>答:可以通过 CPI 获取 QueryWrapper 查询了哪些表,然后进行动态处理。例如 `List<QueryTable> tables = CPI.getQueryTables(queryWrapper)`,然后进一步对
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user