为了说明我的问题,我创建了一个最小的虚构示例项目,它由三个类Service
、Transaction
和Product
. 磷
package org.example;
public class Service {
public Service(Transaction transaction) {
int buyerId = transaction.getProduct().getId();
}
}
类型Product
在单独的包装中domain
package org.example.domain;
public class Product {
// [...]
public int getId() {
return this.id;
}
}
为了这个例子,假设我想避免Service
依赖 package 中的任何东西domain
。
我可以使用此查询来确保这一点:
MATCH
(c {name:"Service"})-[:DEPENDS_ON]->(d)
WHERE
d.fqn STARTS WITH "org.example.domain"
RETURN
c.fqn, d.fqn
这将返回一个非空结果,即违反了约束 - 因为 jQAssistant 在这种情况下创建了and之间的:DEPENDS_ON
关系,这感觉违反直觉,因为既没有导入也没有直接引用in 。Service
Product
org.example.domain.Product
Service
这导致我提出以下问题:
- 这种行为是有意的还是无意的?
- 有没有办法区分在父类型中导入和使用依赖项的“直接”依赖项和我的示例中所示的“间接”依赖项?