小编Mar*_*amm的帖子

Spring Data Neo4J @Indexed(unique = true)不起作用

我是Neo4J的新手,我有一个简单的问题.

我的应用程序中有NodeEntity,一个属性(名称)用@Indexed(unique = true)注释,以实现像我在JPA中使用@Column(unique = true)那样的唯一性.

我的问题是,当我持有一个名称已经存在于我的图表中的实体时,无论如何它都能正常工作.但是我在这里期待某种例外......?!以下是我的基本代码的概述:

@NodeEntity
public abstract class BaseEntity implements Identifiable
{
    @GraphId
    private Long entityId;
    ...
}

public class Role extends BaseEntity
{
    @Indexed(unique = true)
    private String name;
    ...
}

public interface RoleRepository extends GraphRepository<Role>
{
    Role findByName(String name);
}

@Service
public class RoleServiceImpl extends BaseEntityServiceImpl<Role> implements 
{
    private RoleRepository repository;

    @Override
    @Transactional
    public T save(final T entity) {
    return getRepository().save(entity);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的考验:

@Test
public void testNameUniqueIndex() {
    final List<Role> roles = Lists.newLinkedList(service.findAll());
    final …
Run Code Online (Sandbox Code Playgroud)

spring spring-data-neo4j

6
推荐指数
2
解决办法
1934
查看次数

如何通过JMX远程连接Flink?

对于我即将毕业的学士论文,我想开发一种工具,该工具可以从Apache Flink收集系统和应用程序数据,并将这些数据以某种“事件”的形式发送到另一个系统。该工具将安装在Flink作业和任务管理器节点上。除了来自dstat之类的linux系统实用程序的数据外,我还想收集JMX数据。

我的问题是,我无法弄清楚如何使用Flinks jobmanager的端口通过远程JMX连接进行连接。尽管收集器将在同一台计算机上,但我确实尝试避免使用--javaagent访问Flink JVM的JMX数据。

另一个问题是,我有一个基于https://github.com/apache/flink/tree/master/flink-contrib/docker-flink的本地docker 设置,并更新为flink-1.0.2,无法通过jconsole连接因为我不知道如何为作业和任务管理器“打开” JMX远程端口。

有什么办法可以做到这一点?

在此先感谢,任何想法都非常感谢。

jmx apache-flink

3
推荐指数
1
解决办法
1568
查看次数

组合多个CompletableFutures

我有以下组成部分:

private JobInfo aggregateJobInfo() {
    final JobsResult jobsResult = restClient().getJobs();
    final List<String> jobIds = extractJobIds(jobsResult);

    //fetch details, exceptions and config for each job
    final List<JobDetails> jobDetails = jobIds.stream().map(jobId -> {
        final JobDetailResult jobDetailResult = restClient().getJobDetails(jobId);
        final JobExceptionsResult jobExceptionsResult = restClient().getJobExceptions(jobId);
        final JobConfigResult jobConfigResult = restClient().getJobConfig(jobId);
        return new JobDetails(jobDetailResult, jobExceptionsResult, jobConfigResult);
    }).collect(Collectors.toList());
    return new JobInfo(jobsResult, jobDetails);
}

private static List<String> extractJobIds(final JobsResult jobsResult) {
    final ArrayList<String> jobIds = new ArrayList<>();
    jobIds.addAll(jobsResult.getRunning());
    jobIds.addAll(jobsResult.getFinished());
    jobIds.addAll(jobsResult.getCanceled());
    jobIds.addAll(jobsResult.getFailed());
    return jobIds;
}
Run Code Online (Sandbox Code Playgroud)

它只是调用一些ENDPOINTS并修饰一些数据。现在,我试图通过使用CompletableFutures来实现这种非阻塞性,而我之前从未真正使用过。

private CompletableFuture<JobInfo> aggregateJobInfo() …
Run Code Online (Sandbox Code Playgroud)

java-8 completable-future

3
推荐指数
1
解决办法
8256
查看次数