如何在Scala中实现org.hibernate.Session
“会话”接口有两种方法,在
Scala中由于类型擦除而减少为具有相同的签名:
public ProcedureCall createStoredProcedureCall(String procedureName,Class... resultClasses) public ProcedureCall createStoredProcedureCall(String procedureName,String... resultSetMappings) 尝试实现它们会产生错误: 错误:双重定义: 那么我将如何以编译和工作的方式实现此接口? 解决方法
正如
serejja所指出的那样,你可以用Java写一个垫片来为你做翻译:
Java的: package jibernate; import org.hibernate.procedure.ProcedureCall; import org.hibernate.SharedSessionContract; public abstract class Yava implements SharedSessionContract { public ProcedureCall createStoredProcedureCallC(String n,Class... xs) { return createStoredProcedureCall(n,xs); } public ProcedureCall createStoredProcedureCallS(String n,String... xs) { return createStoredProcedureCall(n,xs); } } 如果你正在使用sbt,它可以存在于src / main / java / jibernate / Yava.java中 斯卡拉: package whybernate trait Mehssion extends jibernate.Yava { import org.hibernate.procedure.ProcedureCall def createStoredProcedureCall(n: String,h: Class[_],t: Class[_]*) = createStoredProcedureCallC(n,(h +: t):_*) def createStoredProcedureCall(n: String,h: String,t: String*) = createStoredProcedureCallS(n,(h +: t):_*) } 您可以以相同的方式调用这些函数,利用您保证至少有一个所需的varargs这一事实. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何使bash脚本在执行之前打印出每个命令?
- Angular-Cli 关于第三方样式引用问题
- angularjs – 单页应用程序应该如何提供永久链接?
- 我的第一个bootstrap页面
- webservice: Could not initialize Service NoSuchMethodEx
- Angular开发实践(四):组件之间的交互
- angularjs – 角度简单路由不起作用
- Docker容器中的Docker统计信息在kubernetes中返回空值
- bootstrap+jq+underscore+ionic+react+angularjs
- 简介AngularJS中使用factory和service的方法