小编lin*_*ips的帖子

在Play Framework 2.4中播放Evolutions和JPA

我将Play项目从版本2.3.4迁移到2.4.2.这些项目使用JPA(Hibernate)和Evolutions.我有一个最初的Evolutions SQL脚本,它用一些示例数据填充数据库.此脚本现在不再起作用,因为Evolutions脚本现在在Hibernate生成表之前执行,这显然会导致错误.这是一个理想的行为吗?有没有办法改变执行顺序?

hibernate jpa playframework playframework-evolutions playframework-2.4

7
推荐指数
1
解决办法
629
查看次数

了解Play 2.4依赖注入

我有一些问题需要了解如何在Play 2.4中应用依赖注入的新功能.我熟悉Guice,并在Play文档中错过了解实际绑定发生的方式和时间.我阅读了官方文档[1],并尝试使用最新的Play Mailer [2]作为示例.Play Mailer示例使用任意类并使用注释MailerClient属性@inject.当我尝试使用此类的对象属性时null,至少在调试时.那么,我必须在何时何地进行实际注射?我对@singleton注释有同样的问题.它只是解释了如何注释它,而不是如何获取对象.我是否必须直接使用Guice,或者它是如何集成的?

[1] https://www.playframework.com/documentation/2.4.x/JavaDependencyInjection

[2] https://github.com/playframework/play-mailer

java dependency-injection guice playframework playframework-2.4

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

Play Framework Processing部分表单

我正在使用Play框架,我有一个常见的用例,用控制器动作中的表单更新模型.但是我有一些问题需要理解它背后的概念,因为如果你有一个包含模型所有属性的表单,那么这个问题就可以了.如果您只有一个部分表单,例如只编辑用户模型的密码,则此方法会破坏模型,因为它会将模型的其他属性设置为null.这个问题有"官方"解决方案吗?任何方式Play只更新现有属性?

public static Result update(Long id) {
    Model model = Model.findById(id);
    Form<Model> filledForm = modelForm.bindFromRequest();
    if (filledForm.hasErrors()) {
        return badRequest(edit.render(filledForm));
    } else {
        model.update();
        flash("message", "Created new Model!");
        return ok(index.render());
    }
}
Run Code Online (Sandbox Code Playgroud)

可能该解决方案在某种程度上可以使用其他参数调用bindFormRequest()方法,如字符串或字符串映射?但我无法找到目的.对此的一些见解也会很棒.非常感谢!

playframework playframework-2.0

5
推荐指数
1
解决办法
2144
查看次数

OneToMany关系的Ebean查询

我正在使用Ebean和Play 2 Framework,并获得了两个模型:用户模型和书籍模型.用户模型与OneToMany关系中的书籍模型相关联.因此,每个用户都可以拥有许多书籍或根本没有书籍.书籍模型本身也有属性.现在,我想在用户模型中创建一个查询,该查询仅返回具有某些属性的书籍的用户.例如:一个属性可能是条件,如new或used.现在给我所有拥有新条件书籍的用户.是否可以使用Ebean方法创建这样的查询?或者我必须使用原始SQL?

java playframework ebean playframework-2.0

5
推荐指数
1
解决办法
8019
查看次数

Django Rest Framework测试API响应断言

我找到了使用Django Rest Framework测试Django开发的API端点的理想方法.我正在使用集成的APITestCase并执行如下请求:

response = self.client.get('/resources')
Run Code Online (Sandbox Code Playgroud)

官方文档(http://www.django-rest-framework.org/api-guide/testing)声明最好使用response.datainstaed response.content.我的模型包括一个DateTimeField字段,response.data看起来像这样:

{'id': 1, 'issued': datetime.datetime(2014, 5, 3, 0, 0, tzinfo=<UTC>)}
Run Code Online (Sandbox Code Playgroud)

浏览器中的真实响应如下所示:

{"id": 1, "issued": "2014-05-03T00:00:00Z"}
Run Code Online (Sandbox Code Playgroud)

所以我不确定如何断言这两者是平等的!?

testing api django django-rest-framework

5
推荐指数
1
解决办法
769
查看次数

JSON-LD 空白节点到 Apache Jena 中的嵌套对象

我有以下示例 Turtle 文档:

@prefix dct:   <http://purl.org/dc/terms/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix example: <http://example.com/vocabulary/> .
@prefix dcat:  <http://www.w3.org/ns/dcat#> .

<http://example.com/datasets/1>
        a                     dcat:Distribution ;
        example:props         [ example:prop1  "hello" ;
                                example:prop2  "1" 
                              ] ;
        dct:description       "test data" .
Run Code Online (Sandbox Code Playgroud)

我使用 Apache Jena(带有 JSONLD_COMPACT_PRETTY 的 RDFDataMgr)将它转换为 JSON-LD 到 JSON-LD:

{
  "@context": {
    "dct": "http://purl.org/dc/terms/",
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "dcat": "http://www.w3.org/ns/dcat#",
    "example": "http://example.com/vocabulary/"
  },
  "@graph": [
    {
      "@id": "_:b0",
      "example:prop1": "hello",
      "example:prop2": "1"
    },
    {
      "@id": "http://example.com/datasets/1",
      "@type": "dcat:Distribution",
      "example:props": {
        "@id": "_:b0"
      },
      "dct:description": "test data" …
Run Code Online (Sandbox Code Playgroud)

java jena json-ld blank-nodes

5
推荐指数
1
解决办法
751
查看次数

使用 Jena 解析 RDF 递归

我正在尝试使用 Apache Jena 递归解析 RDF 文档。它由这样的数据集组成:

<dcat:dataset>
    <dcat:Dataset rdf:about="http://url/" > 
        <dct:description xml:lang="ca">Description</dct:description>
        <dct:license rdf:resource="http://creativecommons.org/licenses/by/3.0/"/>
        <dcat:keyword xml:lang="ca">Keyword1</dcat:keyword>
        <dcat:distribution>
            <dcat:Download>
                <dcat:accessURL>http:/url/</dcat:accessURL>
                <dct:format>
                    <dct:IMT>
                        <rdf:value>application/pdf</rdf:value>
                        <rdfs:label>pdf</rdfs:label>
                    </dct:IMT>
                </dct:format>
                <dct:modified rdf:datatype="http://www.w3.or/2001/XMLSchema#date">2012-11-09T16:23:22</dct:modified>
           </dcat:Download>
        </dcat:distribution>
        <dct:publisher>
           <foaf:Organization>
              <dct:title xml:lang="en">Company</dct:title>
              <foaf:homepage rdf:resource="http://url/"/>
           </foaf:Organization>
        </dct:publisher>
    </dcat:Dataset>
</dcat:dataset>
Run Code Online (Sandbox Code Playgroud)

到目前为止,我得到了每个语句,它直接位于 dcat:Dataset (使用 Jena 迭代 RDF 文件中的特定资源),但我想找到每个级别的每个三元组。我的输出应该是这样的:

description: Description
license: http://creativecommons.org/licenses/by/3.0/
keyword: Keyword1
distribution -> Download -> accessurl: http:/url/
distribution -> Download -> format -> IMT -> value: application/pdf
distribution -> Download -> format -> IMT -> label: pdf …
Run Code Online (Sandbox Code Playgroud)

rdf jena

4
推荐指数
1
解决办法
2263
查看次数

使用Hibernate JPA和Postgres玩2.2

我正在尝试使用Play 2.2项目来使用Hibernate JPA和PostgreSQL数据库.我之前使用Play 2.1.1,它完美地工作.我现在收到以下错误:

play.api.UnexpectedException: Unexpected exception[NoClassDefFoundError: org/w3c/dom/ElementTraversal]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:152) ~[play_2.10.jar:2.2.0]
Run Code Online (Sandbox Code Playgroud)

我不知道这是从哪里来的.我的build.sbt看起来像这样:

libraryDependencies ++= Seq(
  javaJdbc,
  cache,
  javaJpa,
  "org.apache.directory.api" % "apache-ldap-api" % "1.0.0-M14",
  "postgresql" % "postgresql" % "9.1-901-1.jdbc4",
  "org.hibernate" % "hibernate-core" % "4.2.3.Final",
  "org.hibernate" % "hibernate-entitymanager" % "4.2.3.Final"
)    
Run Code Online (Sandbox Code Playgroud)

我的persistence.xml像这样:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">

<persistence-unit name="defaultPersistenceUnit"
    transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>DefaultDS</non-jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
    </properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

我还没有编写任何代码,我只是配置它.

postgresql hibernate jpa playframework playframework-2.0

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

使用Jena迭代RDF文件中的特定资源

我正在使用Apache Jena来读取RDF文件,如下所示:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dcat="http://www.w3.org/ns/dcat#"
    xmlns:skos="http://www.w3.org/2004/02/skos/core#"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:dct="http://purl.org/dc/terms/"
    xmlns:dctypes="http://purl.org/dc/dcmitype/"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
  <dcat:Catalog rdf:about="http://uri/">
    <dcat:dataset>
      <dcat:Dataset rdf:about="http://url/bop2262008322pdf/">
        <dct:publisher>
          <foaf:Organization>
            <foaf:homepage rdf:resource="http://url"/>
            <dct:title xml:lang="ca">Neme</dct:title>
          </foaf:Organization>
        </dct:publisher>
        <dcat:distribution>
          <dcat:Download>
            <dct:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#date"
            >2012-11-09T16:23:22</dct:modified>
            <dct:format>
              <dct:IMT>
                <rdfs:label>pdf</rdfs:label>
                <rdf:value>application/pdf</rdf:value>
              </dct:IMT>
            </dct:format>
            <dcat:accessURL>http://url/</dcat:accessURL>
          </dcat:Download>
        </dcat:distribution>
        <dcat:keyword xml:lang="ca">Keyword 2</dcat:keyword>
        <dcat:keyword xml:lang="ca">Keyword</dcat:keyword>
        <dct:creator>Creator</dct:creator>
        <dct:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#date"
        >2013-04-16T12:27:14</dct:modified>
        <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date"
        >2011-03-02T10:28:58</dct:issued>
      </dcat:Dataset>
    </dcat:dataset>
    <dct:license rdf:resource="http://creativecommons.org/licenses/by/3.0/"/>
    <dct:title xml:lang="es">Example</dct:title>
    <dct:title xml:lang="ca">Example</dct:title>
  </dcat:Catalog>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)

我基本上想要获得每个dcat:dataset资源和相应的语句.但我无法弄清楚如何从特定的命名空间和本地名称(在这种情况下dcat:dataset)迭代所有资源.我想通过包含属性可以找到资源.但是dcatJena似乎不支持名称空间.我在词汇表中找不到它.

rdf jena

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