gpt4 book ai didi

java.time YearMonth 作为实体中的类型

转载 作者:行者123 更新时间:2023-11-30 07:57:57 26 4
gpt4 key购买 nike

如何在实体中使用 YearMonth?我已经看到很多关于转换器的堆栈溢出答案?这仍然需要吗?如果需要的话如何?

@Basic(optional = false)
@NotNull
@Column(name = "cc_exp_date")
private YearMonth ccExpDate;

我得到的异常如下。我能否在 set 方法中将其转换为日期,然后在实体的 get 方法中转换回 YearMonth 作为变通方法?

 MysqlDataTruncation: Data truncation: Incorrect date value: '\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x06\x0C\x00\x00\x07\xE2\x02x' for column 'cc_exp_date' at row 1

最佳答案

如果您的 JPA 提供程序没有以合理的方式保留类型(在这种情况下,因为它是一个 Java8 类,它是在 JPA 2.1 获得批准后添加的,并且因为您使用的 EclipseLink 没有太多更新最近支持更新的类型)那么你需要定义一个 JPA 2.1 AttributeConverter 来将它转换为标准的 JPA 持久类型(在这种情况下类似于 java.sql.Date ).

其他 JPA 提供程序支持开箱即用地持久化此类类型(DataNucleus JPA 当然支持,Hibernate 也可能具有可选的依赖项?)

关于java.time YearMonth 作为实体中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com