小编Los*_*ier的帖子

杰克逊与春天的HATEOAS对比多态性

当我想用一个多态变量成员反序列化一个实体时,杰克逊抛出一个com.fasterxml.jackson.databind.JsonMappingException,抱怨缺少类型信息(...实际上存在于JSON中 - >参见示例).

Unexpected token (END_OBJECT), expected FIELD_NAME: missing property '@class' that is to contain type id  (for class demo.animal.Animal)\n at [Source: N/A; line: -1, column: -1] (through reference chain: demo.home.Home[\"pet\"])"
Run Code Online (Sandbox Code Playgroud)

所有实际工作都由Spring HATEOAS的PagingAndSortingRepository完成.

我使用spring-boot V 1.2.4.RELEASE,这意味着jackson是V 2.4.6而Spring HATEOAS是V 0.16.0.RELEASE.

例:

我家里有一只宠物:

@Entity
public class Home {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    @OneToOne(cascade = {CascadeType.ALL})
    private Animal pet;

    public Animal getPet() {
        return pet;
    }

    public void setPet(Animal pet) {
        this.pet = pet;
    }

}
Run Code Online (Sandbox Code Playgroud)

宠物是动物 - …

java polymorphism jackson spring-hateoas spring-boot

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

如何将其他参数传递给MariaDB连接字符串以修复时区问题(例如useLegacyDatetimeCode)

我正在向使用MariaDB服务的Swisscom AppCloud部署一些spring-boot应用程序.使用CloudFoundry连接器在我的应用程序中自动配置该服务,连接正常.

但是:由于我在我的Java代码中大量使用ZonedDateTime-Objects,我也包含在pom.xml中...

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-java8</artifactId>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

...正确保存数据库中的ZonedDateTimes.

当我添加时,这在我的本地MariaDB上工作正常

    ...?useLegacyDatetimeCode=false
Run Code Online (Sandbox Code Playgroud)

...到连接字符串(如下所述:https://moelholm.com/2016/11/09/spring-boot-controlling-timezones-with-hibernate/ - >"BONUS提示:让Hibernate配置工作与MariaDB/MySQL").

如何将此标志(也可能是其他标志)添加到Swisscom AppCloud上与MariaDB服务的连接?

mariadb timestamp-with-timezone spring-boot swisscomdev

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