小编Alb*_*elo的帖子

ID为ID的对象不是指定的子类

我的应用程序出现了一个奇怪的错误。
我正在尝试从数据库(MySQL)检索实体列表,session.createCriteria().list()但是我正在获取它org.hibernate.WrongClassException

我查了一下这个错误,我知道这意味着什么,但是我不知道如何根据我的情况解决它。

我具有以下数据库结构:

CREATE TABLE vtiger_crmentity (
`crmid` int(19) NOT NULL
)

CREATE TABLE vtiger_account (
    `accountid` int(19) NOT NULL DEFAULT 0
)

CREATE TABLE vtiger_accountscf (
    `accountid` int(19) NOT NULL DEFAULT 0
)

CREATE TABLE vtiger_accoutshipads (
`accountaddressid` int(19) NOT NULL DEFAULT 0
)

CREATE TABLE vtiger_accountbillads (
    `accountaddressid` int(19) NOT NULL DEFAULT 0
)
Run Code Online (Sandbox Code Playgroud)

因此,快速解释一下,所有表都由这些id列链接,在最后一级,该vtiger_accountscf表具有1 vtiger_accountshipads和1 vtiger_accountbillads。所有表都具有相同的PK。
所以我把我的课做成这样(存根):

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "vtiger_crmentity")
public class VtigerCrmentity { …
Run Code Online (Sandbox Code Playgroud)

java mysql sql hibernate vtiger

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

Spring boot + Jackson - 始终将日期转换为UTC

我在没有时间戳的情况下将日期保存在我的数据库中,因此我希望我的Spring Boot Rest控制器接收日期的方式标准化,因此可以在世界任何地方部署服务(AWS EC2等).

我试着设置以下属性,没有帮助:

spring.jackson.time-zone=UTC
Run Code Online (Sandbox Code Playgroud)

还有另一个属性,总是true,所以我没有设置,那就是:

spring.jackson.deserialization.adjust-dates-to-context-time-zone=true
Run Code Online (Sandbox Code Playgroud)

我正在部署到2个独立的Ubuntu容器,一个在UTC时区,另一个在我当前的时区America/Sao_Paulo,即(GMT -3).

示例负载:

{"date":"2017-09-15T18:58:00.000Z"}
Run Code Online (Sandbox Code Playgroud)

当服务部署在圣保罗时,它会收到:

2017-09-15 18:58:00.000000
Run Code Online (Sandbox Code Playgroud)

这是正确的.

在UTC上部署服务时,它会收到:

2017-09-15 15:58:00.000000
Run Code Online (Sandbox Code Playgroud)

这是不正确的.

我用Java存储日期信息LocalDateTime.

示例型号:

import java.time.LocalDateTime;

class Model {
    private LocalDateTime date;

    public LocalDateTime getDate() {
        return date;
    }

    public void setDate(LocalDateTime date) {
        this.date = date;
    }
}
Run Code Online (Sandbox Code Playgroud)

示例资源:

@RestController
class Resource {
    @RequestMapping(consumes = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<?> add(@RequestBody Model model) {
        System.out.println(model.getDate()); …
Run Code Online (Sandbox Code Playgroud)

java spring-mvc spring-boot java-time jackson2

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

标签 统计

java ×2

hibernate ×1

jackson2 ×1

java-time ×1

mysql ×1

spring-boot ×1

spring-mvc ×1

sql ×1

vtiger ×1