问题描述
我有 MyBatis ORM 的 spring-boot 应用程序。在java中我写像
@Mapper
@Repository
public interface FooMapper {
@SelectProvider(type = sqlProviderAdapter.class,method = "select")
@Results(id = "resultFoo",value = {
@Result(property = "rowId",column = "ROW_ID"),@Result(property = "created",column = "CREATED"),@Result(property = "lastUpdated",column = "LAST_UPD"),@Result(property = "fooId",column = "FOO_ID"),})
Foo findBy(SelectStatementProvider selectStatement);
@SelectProvider(type = sqlProviderAdapter.class,method = "select")
@Results(value = {
@Result(property = "rowId",})
List<Foo> findListBy(SelectStatementProvider selectStatement);
@SelectProvider(type = sqlProviderAdapter.class,method = "select")
@Results(value = {
@Result(property = "fooId",column = "FOO_ID")
})
List<String> findFooListBy(SelectStatementProvider selectStatement);
@InsertProvider(type = sqlProviderAdapter.class,method = "insert")
@Options(useGeneratedKeys = true,keyProperty = "record.rowId",keyColumn = "row_id")
int insert(InsertStatementProvider<Foo> insertStatement);
@UpdateProvider(type = sqlProviderAdapter.class,method = "update")
int update(UpdateStatementProvider updateStatement);
}
这很好用!
但我需要将所有应用程序转换为 Kotlin。 我尝试了以下代码:
@Mapper
@Repository
interface FooMapper {
@SelectProvider(type = sqlProviderAdapter::class,method = "select")
@Results(
id = "resultReferralActivation",value = [Result(property = "rowId",Result(
property = "created",column = "CREATED"
),Result(property = "lastUpdated",Result(
property = "fooId",column = "FOO_ID"
)]
)
fun findBy(selectStatement: SelectStatementProvider?): Foo?
@SelectProvider(type = sqlProviderAdapter::class,method = "select")
@Results(
value = [Result(property = "rowId",column = "FOO_ID"
)]
)
fun findListBy(selectStatement: SelectStatementProvider?): List<Foo?>?
@SelectProvider(type = sqlProviderAdapter::class,method = "select")
@Results(value = [Result(property = "fooId",column = "FOO_ID")])
fun findFooListBy(selectStatement: InsertStatementProvider?): List<String?>?
@InsertProvider(type = sqlProviderAdapter::class,keyColumn = "row_id")
fun insert(insertStatement: InsertStatementProvider<Foo?>?): Int
@UpdateProvider(type = sqlProviderAdapter::class,method = "update")
fun update(updateStatement: UpdateStatementProvider?): Int
}
但它不起作用。如果我在 java 或 kotlin 类应用程序中尝试 awtowired FooMapper 时失败,并显示如下消息:can't find bean FooMapper。如果我评论了我的自动装配尝试,应用程序就会启动,但是当我检查 spring-bean-list 时,我看到 bean FooMapper 不存在。
如何将我的 Java 映射器转换为 Konlin?
感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)