小编dje*_*son的帖子

Java 10 上具有 JPA 静态元模型的 JHipster5 项目

我一直在尝试升级我的 JHipster 5 应用程序以使用 Java 10,但我无法让它使用 Maven 编译和处理 JPA 静态元模型。

\n\n

显然maven-compiler-plugin不是hibernate-jpamodelgen为了生成 JPA 静态元模型而触发。

\n\n

为了升级项目,我有:

\n\n
    \n
  • 安装Oracle\xc2\xb4s JDK 10.0.1
  • \n
  • 将我的 pom.xml 切换为<java.version>10</java.version>
  • \n
  • 升级了 maven-compiler-plugin 以添加java.xml.bind模块(因为从 Java 10 开始默认不包含该模块),如下所示:

    \n\n
        <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-compiler-plugin</artifactId>\n        <version>${maven-compiler-plugin.version}</version>\n        <configuration>\n            <!-- fork is needed so compiler args can be used -->\n            <fork>true</fork>\n            <compilerArgs>\n                <arg>-J--add-modules</arg>\n                <arg>-Jjava.xml.bind</arg>\n            </compilerArgs>\n            <annotationProcessorPaths>\n                <path>\n                    <groupId>org.mapstruct</groupId>\n                    <artifactId>mapstruct-processor</artifactId>\n                    <version>${mapstruct.version}</version>\n                </path>\n                <!-- For JPA static metamodel generation -->\n                <path>\n                    <groupId>org.hibernate</groupId>\n                    <artifactId>hibernate-jpamodelgen</artifactId>\n                    <version>${hibernate.version}</version>\n                </path>\n\n            </annotationProcessorPaths>\n …
    Run Code Online (Sandbox Code Playgroud)

jpa metamodel maven-compiler-plugin jhipster java-10

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

具有默认null值的Avro logicalType'日期'

我需要在Avro架构中将'null'默认值添加到logicalType:'date'。我当前的定义是这样的:

{
 "type": "record",
 "namespace": "my.model.package",
 "name": "Person",
 "version": "1",
 "fields": [
    {"name":"birthday","type": { "type": "int", "logicalType": "date"}}
 ]
}
Run Code Online (Sandbox Code Playgroud)

当我用'birthday'字段填充时,org.joda.time.LocalDate它确实起作用,但是当我离开它时null,出现以下异常:

org.apache.kafka.common.errors.SerializationException: Error serializing Avro message
Caused by: java.lang.NullPointerException: null of int of my.model.package.Person
at org.apache.avro.generic.GenericDatumWriter.npe(GenericDatumWriter.java:145)
at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:139)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:75)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:62)
at io.confluent.kafka.serializers.AbstractKafkaAvroSerializer.serializeImpl(AbstractKafkaAvroSerializer.java:92)
at io.confluent.kafka.serializers.KafkaAvroSerializer.serialize(KafkaAvroSerializer.java:53)
at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:459)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:436)
...
Run Code Online (Sandbox Code Playgroud)

我尝试了多种方法将此“ logicalType”配置为可为空,但无法使其正常工作。如何将该字段配置为可为空?

java schema avro apache-kafka

4
推荐指数
2
解决办法
2722
查看次数