小编use*_*529的帖子

@CreatedBy和@LastModifiedDate不再与ZonedDateTime一起使用?

我已经将旧的Spring Boot 1.5.3项目更新为Spring Boot 2.0.0。发布。我有一个审计实体,其中两个区域的类型为ZonedDateTime,并带有@CreatedBy和@LastModifiedDate。

在以前的版本中,一切正常。但是,使用新的更新后,将实体保存在资源库中后,我得到了一个错误

 createdDate=<null>
 lastModifiedDate=<null>
 ]! Supported types are [org.joda.time.DateTime, org.joda.time.LocalDateTime, java.util.Date, java.lang.Long, long]
Run Code Online (Sandbox Code Playgroud)

我检查了AnnotationAuditingMetaData,发现与ZonedDateTime有关。

https://jira.spring.io/browse/DATAJPA-1242中也存在此问题,我相信这是相关的。

我的问题是我在这里做错了什么,spring是否停止了支持,或者我做错了什么?

spring spring-data spring-data-jpa spring-boot zoneddatetime

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

通过PHP在XML文件中添加新节点

我只是想问一个问题..如何使用php在xml中插入一个新节点.我的XML文件(questions.xml)如下所示

<?xml version="1.0" encoding="UTF-8"?>
<Quiz>
   <topic text="Preparation for Exam">
      <subtopic text="Science" />
      <subtopic text="Maths" />
      <subtopic text="english" />
   </topic>
</Quiz>
Run Code Online (Sandbox Code Playgroud)

我想添加一个带有"text"属性的新"subtopic",即"geography".我怎么能用PHP做到这一点?提前谢谢.我的代码是

<?php

$xmldoc = new DOMDocument();
$xmldoc->load('questions.xml');



$root = $xmldoc->firstChild;

$newElement = $xmldoc->createElement('subtopic');
$root->appendChild($newElement);
Run Code Online (Sandbox Code Playgroud)

// $ newText = $ xmldoc-> createTextNode('geology'); // $ newElement-> appendChild($ newText);

$xmldoc->save('questions.xml');
Run Code Online (Sandbox Code Playgroud)

?>

php xml simplexml xml-parsing

5
推荐指数
2
解决办法
2万
查看次数

如何在spring boot controller中执行sql语句?

我想在spring boot controller类中执行sql语句,而不是在jpa存储库中定义任何方法.我想要使​​用的声明是

SELECT UUID();
Run Code Online (Sandbox Code Playgroud)

此语句与数据库相关,并且与特定实体无关.

如果任何人都能通过提供上述语句的执行解决方案,那将是很好的

  1. 弹簧控制器类
  2. jpa存储库(如果推荐)

更新

控制器:

@Autowired
JdbcTemplate jdbcTemplate;

@RequestMapping(value = "/UUID", method = RequestMethod.GET)
public ResponseEntity<String> getUUID() {
    String uuid = getUUID();
    return buildGuestResponse(uuid);
}

public String getUUID(){
    UUID uuid = (UUID)jdbcTemplate.queryForObject("select UUID()", UUID.class);
    return uuid.toString();
}
Run Code Online (Sandbox Code Playgroud)

java mysql uuid spring spring-boot

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

使用 Mongodb 版本 4 和副本配置 flapdoodle 嵌入式 mongo

我目前正在开发 Spring Boot 应用程序 2.0.3.RELEASE。我想用 MongoDb 4.0 版配置 Flapdoodle MongoDb,我还想设置一个 mongo 实例并为其创建副本。

到目前为止,我还没有弄清楚使用fladdoodle创建集群和副本的过程。

我在用

         MongodConfigBuilder().version(Version.Main.DEVELOPMENT)
        .replication(new Storage(null, null, 0))
        .build();
Run Code Online (Sandbox Code Playgroud)

我在这里阅读了许多与此配置相关的问题,但没有一个与我的问题有关。eg 如何配置两个实例mongodb 使用spring boot 和spring data

fladdoodle 配置对此有一个实现,但我不确定如何访问它。

https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo/blob/master/src/main/java/de/flapdoodle/embed/mongo/tests/MongosSystemForTestFactory.java

在应用程序启动之前,有什么方法可以在我的测试类中配置它。谢谢

java spring embedded-database spring-boot spring-mongodb

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

使用OWLAPi和JFact推理器获取特定类的所有个体

有没有办法让使用推理器的特定班级的所有人?推理因为我想获得该类的所有推断和认定的个体.我正在使用JFact推理器,我正在尝试循环和if语句.我想找到班级的人,例如"人".但我无法看到这些人.有关下面的代码的任何想法或有任何方法为此目的?

for (OWLClass c : myPizza.getClassesInSignature()) {
        NodeSet<OWLNamedIndividual> instances = reasoner.getInstances(c, true);
        System.out.println(c.getIRI().getFragment());
        if (c.getIRI().getFragment().equals("Person")){

            for (OWLNamedIndividual i : instances.getFlattened()) {
                System.out.println(i.getIRI().getFragment()); 

        }
    }
        else {
            continue;
        }
        break;

    }
Run Code Online (Sandbox Code Playgroud)

谢谢

java owl-api

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

使用函数式编程,提取提供子类对象的超类字段

我有两个类动物和狗即

public class Animal {
    private String name,age;
    //public getters and setters
}

public class Dog extends Animal {
    private String color;
    //public getters and setters
}
Run Code Online (Sandbox Code Playgroud)

我正在使用java 8函数式编程从json节点中提取字段,即

public class EntityExtraction {

    private Function<JsonNode, Animal> extractAnimal = node -> {
         Animal animal = new Animal();
         animal.setName(node.get("name").asText()));
         animal.setAge(node.get("age").asText()));
         return animal;
    };

    private Function<JsonNode, Dog> extractDog = node -> {
        Dog dog = new Dog();
        dog.setName(node.get("name").asText()));
        dog.setAge(node.get("age").asText()));
        dog.setColor(node.get("color").asText()));
        return dog; 
    };

}
Run Code Online (Sandbox Code Playgroud)

问题在于它不是面向对象的.如果Animal类中有一个新字段,那么我必须在两个功能方法中明确表示它,即extractDog和extractAnimal.

有没有办法使用extractDog方法在Dog类中设置超类字段,而无需通过构造函数来完成,例如

private Function<JsonNode, Dog> extractDog = node -> …
Run Code Online (Sandbox Code Playgroud)

java inheritance java-8

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

如何在spring boot jpa中使用外部id作为主id?

有没有办法使用另一个实体的主键作为主键而不使用Embeddable或Id类.例如:

@Table(name = "employee")
@Entity
public class Employee implements Serializable {

    @Id
    @JoinColumn(name = "person_id")
    private Person person;
Run Code Online (Sandbox Code Playgroud)

这里,Person是另一个实体,person_id是主键.提前致谢

java mysql spring hibernate jpa

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

Spring Boot 中对多 RabbitMq 虚拟主机的动态支持

我正在尝试实现对多租户 Spring Boot 应用程序的支持,其中每个租户应用程序都通过 RabbitMq 将数据发送到 Spring Boot 应用程序。每个租户都连接到自己的 RabbitMq 虚拟主机。这可以如下图所示 在此处输入图片说明

这个问题已经被问过很多次了,比如

  1. 如何在 Spring RabbitMQ 项目中使用多个虚拟主机?
  2. 在rabbitmq配置spring boot中在AMQP中配置多个Vhost
  3. 跨多个rabbitMQ实例的RabbitMQ RPC

解决方案似乎是为每个虚拟主机创建多个 connectionFactory bean。这些是完全硬编码的解决方案。我想要一些更易于管理的东西。

就我而言,每个虚拟主机的交换名称和绑定密钥都是相同的。到目前为止,spring boot 应用程序能够连接到一个虚拟主机。

我希望我的 Spring Boot 应用程序能够处理所有这些虚拟主机以及在 spring 配置文件中完成的所需凭据,而不是为每个连接工厂创建一个单独的 bean。

有没有办法在 spring 配置文件中实现对多个虚拟主机的支持,或者如果可能的话,还有其他更好的方法来解决我和许多其他开发人员面临的这个问题吗?

谢谢

java rabbitmq spring-rabbit spring-amqp spring-boot

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