Createsequence

Results 37 issues of Createsequence

目前在 Spring 环境中,要注册一个数据源容器的方法只有两种: - 直接从 Spring 容器获取 ContainerManager,然后手动注册; - 将数据源容器声明为 Spring 的 Bean,然后自动注册; 在新的版本中,希望提供一个介于两者之间的方案,即用户实现 AutoContainerRegistrar 接口创建一个用于注册容器特殊 Bean,它的使用应当类似: ~~~java public class ExampleAutoContainerRegistrar implements AutoContainerRegistrar { public Collection

enhancement
good first issue

目前的 MP 插件存在下述不足,需要在不影响已有的 `@AssembleMp` 注解使用的情况进行重构: - Mapper 注册机制不太合理; - 不支持多数据源; - 代码较为冗余,组件设计职责不够清晰,导致后续扩展 JPA 插件无从下手; 该 issue 需要在 #7 之前完成。

refactor

提供一个轻量启动模式,允许 crane4j 只启用最基本的功能和组件

enhancement

提供 JPA 扩展,支持基于仓储接口自动提供用于根据外检查询表数据的容器,就像 #8 提供的 MybatisPlus 适配一样. 扩展模块将会自动提供一个独立的 `ContainerProvider`,类似 MybatisPlus 扩展中的 `MpMethodContainerPrivoder`,该容器提供者将在项目启动后扫描项目中的所有 `Repository` 接口,并且根据情况自动适配并注册根据 id / 外键查询表数据源的容器,然后用户只需要在配置中指定了 `ContainerPrivoder` 后,即可方便的查询表数据源并且填充。 比如,我们现在有一个 `Foo` 类和它对应的仓储接口 `FooRepository`,则参照 mp 扩展的适用方式,则有: ~~~java public class Foo {...

enhancement

提供 Jdbc 扩展,支持基于自定义 SQL 的数据源容器,比如: ~~~java public class Foo { @AssembleQuery( selects = {"user_name", "user_age"}, where = "id", from = "user", // 可以构建查询 SQL,直接基于 PrepareStatement 查询 datasource = "default_ds", //...

enhancement
worth trying
primary

现有 `crane4j-example` 模块作为实例模块,原意是希望能够便于管理,不过目前 example 模块依然按父子模块的方式存在,因此考虑在后续版本作出调整。 以下是可选的方案: - 彻底将 `crane4j-example` 分离为独立项目; - 保持现在的结构,但是不再令 example 模块继承 cranej4 父模块,将其作为独立模块; - 将 example 模块分离到独立的分支,其中高低版本 jdk 各有一个独立分支;

documentation

提供一个 `@AssembleExpression` 注解,用于基于表达式完成填充。比如: ~~~yml public class Foo { @AssembleExpression( exp = "${config.properties.name}", // 指定表达式 contextFactory = "springContextFactory", // 指定用于创建表达式上下文的工厂 props = @Mapping(ref = "name") // 将值映射到 `name` 属性 ) private...

enhancement

现有的 `ContainerProvider` 只支持根据命名空间字符串获取对应的容器,由于字符串的表示能力有限,导致包括 `MyabtisPlusQueryContainerProvider` 以及 `AssembleEnumAnnotationHandler` 所使用的内部提供者都被迫要将各种额外的参数拼接成字符串作为容器的命名空间。 因此,希望 `ContainerProvider` 允许在调用 `getContainer` 方法时,传入对象而非字符串作为查询条件,具体的匹配逻辑由 `ContainerProvider` 与 `OperationAnnotationHandler` 配合完成。 要实现这个效果,可能需要调整下述组件: - `AssembleOperation` 中的 `getContainer` 应该返回一个 `Object` 对象,同时实现类应该记录 `ContainerProvider` 的名称; - `AbstractOperationAnnotationHandler` 中解析容器命名空间的逻辑需要做调整,应当返回一个 `Object`...

refactor
primary

documentation

比如,假如有链式操作符 `nested.name`,表示需要访问当前对象的 `nested` 属性对应的对象中的 `name` 属性,现在若 `nested` 属性为 `null`,则将会无法进行赋值。因此希望能够对 `ChainAccessiblePropertyOperator` 进行增强,比如当 `nested` 为 `null` 的时候,自动通过反射创建一个对应的实例。 该功能应当作为一个可选项,可自由选择开启或者关闭。

enhancement