“会话”接口有两个方法,在Scala中,由于类型擦除,它们被简化为具有相同的签名:
public ProcedureCall createStoredProcedureCall(String procedureName, Class... resultClasses)
public ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings)
试图实现它们会产生错误:
错误:双重定义:第199行的方法createstoredprocedurecall:(procedureName: String,resultset mappings:string *)org . hibernate . procedure . procedure call和方法createstoredprocedurecall:(procedurename:string,result classes:class[_])org . hibernate . procedure call在擦除后具有相同的类型:(procedurename:string,resultset mappings:seq)org . hibernate . procedure . procedure call重写def createstoredprocedurecall(procedurename:string,resultset mappings:string):string):
那么我该如何以既能编译又能工作的方式实现这个接口呢?
正如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
Scala公司:
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):_*)
}
您可以用相同的方式调用这些函数,利用这样一个事实,即您保证至少有一个所需的 vararg。
嗨,我是Scala的新手,想知道如何将一个简单的ListNode类从Java改写成Scala。 在java中,它如下所示,我可以创建一个head node head=new ListNode(0),然后设置head.next=new ListNode(1) 但是我发现在Scala中很难重写相同的逻辑,下面是ListNode的case类 当我试图实例化一个head节点,并实例化另一个新节点并设置he
问题内容: 我想要的只是使用一些并发Set(看起来根本不存在)。Java用于实现该行为。我想在Scala中做类似的事情,所以我创建了Scala HashMap(或Java ConcurrentHashMap)实例,并尝试添加一些元组: 当然,由于Unit是抽象的也是最终的,因此这使编译过程崩溃了。 如何使这项工作?我应该使用/ 代替吗?我必须确保没有人插入任何值。 感谢帮助 问题答案: 您可以只使
这个想法是两台不同的机器(在两个不同的NATs后面)连接到公共服务器。 他们试图与这样的公共服务器建立TCP连接...那么神奇的事情就可能发生在数据流的处理过程中!在此会话期间更改整个TCP/IP堆栈上的源和dest地址。 目标--将第三部分作为代理排除在进一步的交流之外...
我正在努力使用Java Spring Hibernate,我正在尝试实现Oauth2,在通过@ManyToMany将表用户连接到角色时,我不断遇到错误。我已经阅读了所有关于我的问题的答案,无论我尝试什么,我仍然得到了一个组织。冬眠映射异常。 以下是我正在努力做的事情的全部细节。 数据库结构 角色。JAVA 使用者JAVA 依赖性 问题: org.springframework.beans.fact
使用ScalaTest,我想替换测试用例中的函数实现。我的用例: 我想写一个单元测试,但我不希望此测试用例依赖于测试运行的实际年份。 在动态语言中,我经常使用一个可以替换函数实现以返回固定值的构造。 我希望我的测试用例更改始终返回2014,无论实际年份是什么。 我发现了几个模拟库(Mockito、ScalaMock等等),但它们都只能创建新的模拟对象。它们似乎都无法取代方法的实现。 有办法做到吗?