我是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) 对于我即将毕业的学士论文,我想开发一种工具,该工具可以从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远程端口。
有什么办法可以做到这一点?
在此先感谢,任何想法都非常感谢。
我有以下组成部分:
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)