小编rom*_*rom的帖子

在JAVA中包含多个方法?枚举不是正确的方法吗?

我在java中有以下情况:我有一个名为"A"的接口,需要由程序启动后动态加载的类实现.让我们称它为B.这个接口提供x(多于1个)方法.让我们从()到z()调用em.现在我必须将这个类包装一段时间来测量和控制问题并在它自己的线程中运行它以便能够在需要太长时间时将其杀死.因此我发明了包含B的C类,因为B本身并没有实现runnable.下一部分是原始程序应该调用的类.新的D类D也实现了接口A以隐藏模型中的整个控制部分.现在我必须在D中包装接口的方法并将它们发送到C并将其解包给C,后者将它们解包并在对象B上执行它们.我希望我能够很好地解释它.

这里有一些我想象的示例代码可以是:

public class D implements A {

private C ai;

public D(String aiName) {
    ai = new C("trivialKi");
}

private void call(parameters, ORIGIN_METHOD origin) {
    AiTaskExecutor task = new AiTaskExecutor(parameters, origin, ai);
    FutureTask<Long> tsk = new FutureTask<Long>(task);

    Thread thread = new Thread(tsk);
    thread.start();
    if (abort) {
            tsk.cancel(true);
    }
}

@Override
public void a(g g, f f, t t) {
    call(g, f, t, ORIGIN_METHOD.a);
}

@Override
public void b(g g, t t, h h) {
    call(g, t, h, ORIGIN_METHOD.b);
} …
Run Code Online (Sandbox Code Playgroud)

java concurrency enums word-wrap

2
推荐指数
1
解决办法
386
查看次数

如何使用 micronaut 流式传输来自 JPA 的数据流?

我目前开始使用 micronaut 和 kotlin。我有 JPA 查询,结果大约有 100 万个。这些结果我想从这个 micronaut 服务流到另一个。

我的查询返回 aallQuery.resultStream类型java.util.stream

发送服务的控制器:

@Get("/test{value1,value2,value3}")
fun getTestObjects(
    value1: String,
    value2: String,
    value3: String
): Stream<TestObject> {
    val entries = testRepository.findAllWhere(value1, value2, value3)

    return entries
}
Run Code Online (Sandbox Code Playgroud)

接收服务的客户:

@Get("/data/test{value1,value2,value3}")
override fun getTestObjects(alue1: String,
    value2: String,
    value3: String) : Stream<TestObject>
Run Code Online (Sandbox Code Playgroud)

JPA 查询如下所示:

    val cb = entityManager.criteriaBuilder
    val cq = cb.createQuery(TestObject::class.java)

    val rootEntry = cq.from(TestObject::class.java)

    val predicates = mutableListOf<Predicate>()

    predicates.add(cb.like(rootEntry.get<String>("value1"), value1))
    predicates.add(cb.equal(rootEntry.get<String>("value2"), value2))
    predicates.add(cb.equal(rootEntry.get<Int>("value3"), value3))

    val cqAllWhere = cq.select(rootEntry)
        .where(cb.or(*predicates.toTypedArray()))

    val …
Run Code Online (Sandbox Code Playgroud)

rest reactive-programming java-stream rx-java2 micronaut

2
推荐指数
1
解决办法
305
查看次数

有没有办法将 jpa 谓词数组传递给 KOTLIN 中的标准构建器?

在:https : //stackoverflow.com/a/11138229/1270045 中提出的解决方案 在 java 中工作得很好,但我在 kotlin 中。在这里我如何将谓词数组传递给用 kotlin 编写的标准构建器?

所以它是关于在 kotlin 中写这个我可以传递的:

cq.select(customer).where(predicates.toArray(new Predicate[]{}));
Run Code Online (Sandbox Code Playgroud)

我的示例代码:

val predicates = mutableListOf<Predicate>()
if (XYZ != null) {
    val XYZPath = element.get<Long>("XYZ")
    predicates.add(criteriaBuilder.equal(XYZPath, XYZ))
}
criteriaQuery.select(element)
    .where(criteriaBuilder.or(???))
Run Code Online (Sandbox Code Playgroud)

java syntax jpa hibernate-criteria kotlin

0
推荐指数
1
解决办法
1169
查看次数