我有一个奇怪的问题JPA映射失败转换为时间戳,但它使用的值似乎是整个行,而不仅仅是一个变量。JPA映射失败的奇怪消息
的错误是:
java.sql.SQLException: Value '1988├╗ ├╗├╗├╗├╗├╗├╗0
07 1234567 wk├╗0├╗├╗├╗├╗├╗ ' can not be represented as java.sql.Timestamp
其中值似乎是整行,大部分坏字符是空的。调试日志记录目前没有给我太多,我不确定它是否是我的映射类错误,整理问题或其他。
MySQL工作台正确读取表中的所有信息。从命令运行mysql会正确输出所有数据。任何地方都不能显示任何特殊字符。
我的映射类的简化版本是:
@Entity
@Audited
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class PersonSundry {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="person_id", unique=true)
private Person person;
@ManyToOne(fetch=FetchType.EAGER)
private Lookup1 lookup1;
@ManyToOne(fetch=FetchType.EAGER)
private Lookup2 lookup2;
@Lob
private String backgroundInfo;
private LocalDate dateOfSomething1;
private LocalDate dateOfSomething2;
private LocalDate dateOfSomething3;
// getters and setters
}
有没有人遇到过吗?任何想法在哪里看?
编辑:根本原因竟然是00-00-0000到时间戳的通用失败演员,但是我打算留下问题打开,看看是否有人知道给出奇怪的错误消息的地方确切的一个。
用户执行一些操作,并将SQL发送到数据库。该SQL打印在JPA提供程序日志中。为什么不看它呢? – DN1
您是否为Hibernate添加了Java 8支持?由于JPA 2.1不支持开箱即用的java 8日期时间API –
您能否显示代码如何坚持(如果坚持java)并找到失败的行?数据库中LocalDate的数据类型是什么? – pirho