我的应用程序出现了一个奇怪的错误。
我正在尝试从数据库(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) 我在没有时间戳的情况下将日期保存在我的数据库中,因此我希望我的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 ×2
hibernate ×1
jackson2 ×1
java-time ×1
mysql ×1
spring-boot ×1
spring-mvc ×1
sql ×1
vtiger ×1