小编Moh*_*mir的帖子

根据URI前缀排除DBpedia SPARQL查询的结果

如何在使用DBpedia SPARQL端点时排除一组概念?我正在使用以下基本查询来获取概念列表:

SELECT DISTINCT ?concept
WHERE {
    ?x a ?concept
}
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

SPARQL结果

这给了我一个100个概念的列表.我想排除属于YAGO类/组的所有概念(即,其IRI开头http://dbpedia.org/class/yago/).我可以过滤掉这样的个别概念:

SELECT DISTINCT ?concept
WHERE {
    ?x a ?concept
    FILTER (?concept != <http://dbpedia.org/class/yago/1950sScienceFictionFilms>)
}
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

SPARQL结果

但我似乎无法理解的是如何从我的结果中排除所有YAGO子类?我试过用*这样的东西,但这没有达到任何目的:

FILTER (?concept != <http://dbpedia.org/class/yago/*>)
Run Code Online (Sandbox Code Playgroud)

更新:

这个查询regex似乎可以解决问题,但它确实非常非常缓慢和丑陋.我真的很期待更好的选择.

SELECT DISTINCT ?type WHERE {
  [] a ?type
  FILTER( regex(str(?type), "^(?!http://dbpedia.org/class/yago/).+"))
}
ORDER BY ASC(?type)
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

sparql dbpedia

6
推荐指数
1
解决办法
3434
查看次数

具有多个 @PersistenceContext 的 @Stateless EJB 的 Spring 等效项

在过去的几天里,我一直在用头撞墙,试图让它发挥作用,但我没能做到。

我最近使用 EJB 写了一个 JPA EntityManagerProvider:

EntityManagerProviderBean.java

@Stateless
public class EntityManagerProviderBean {

    @PersistenceContext(unitName="PU1")
    private EntityManager entityManager1;   

    @PersistenceContext(unitName="PU2")
    private EntityManager entityManager2;

    public EntityManager getEntityManager() {
        return (...) ? entityManager1: entityManager2;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后当然我可以像这样在任何需要的地方注入 EJB:

用户界面

@Stateless
public class UserFacade {

    @EJB
    private EntityManagerProviderBean emProvider;
    private EntityManager em = emProvider.getEntityManager();

    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用 Spring 来做一些类似的事情,使用注释,而不是在 XML 中做任何事情。我似乎无法找到注入 EntityManager 的方法。我所做的任何事情都会导致 NullPointerException。例如,我尝试在不依赖于我的 EntityManagerProviderBean 的情况下手动注入 EntityManager,如下所示:

UserFacadeSpring.java

public class UserFacadeSpring {

    @PersistenceContext(unitName="PU1")
    private EntityManager em;

    ...
}
Run Code Online (Sandbox Code Playgroud)

但这给了我一个 NullPointerException。所以 EntityManager 根本没有被注入,我不确定出了什么问题。

所以基本上有两个问题:

  1. 如何使用 Spring 注入 …

spring jpa jakarta-ee

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

标签 统计

dbpedia ×1

jakarta-ee ×1

jpa ×1

sparql ×1

spring ×1