国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

JPA2.1與Java8 date/time

2019-11-14 09:55:36
字體:
供稿:網(wǎng)友

java 8 開始引入了全新的時間API,但是因?yàn)镴PA 2.1發(fā)布于Java 8之前,所以在JPA2.1中,Java 8 的新時間API是無法默認(rèn)就被識別,正確地映射到數(shù)據(jù)庫的。

JPA&Hibernate

解決辦法主要有兩類: 1. 自己定義類型映射支持 2. 使用PRovider提供的擴(kuò)展

通過AttributeConverter自定義映射支持

以通過AttributeConverter實(shí)現(xiàn)java.sql.Date和java.time.LocalDate的轉(zhuǎn)換為例

@Converter(autoApply = true)public class LocalDateAttributeConverter implements AttributeConverter<LocalDate, Date> { @Override public Date convertToDatabaseColumn(LocalDate locDate) { return (locDate == null ? null : Date.valueOf(locDate)); } @Override public LocalDate convertToEntityAttribute(Date sqlDate) { return (sqlDate == null ? null : sqlDate.toLocalDate()); }}

有上述Converter后,類型的轉(zhuǎn)換對于實(shí)體的使用者來說就是透明的,LocalDate與Date的轉(zhuǎn)換將會自動被應(yīng)用于所有的attribute。

利用provider自身的擴(kuò)展

JPA provider自身通常會有自己的擴(kuò)展方式用于支持Java 8,以 Hibernate為例(5.0及以上),利用Hibernate自身的擴(kuò)展只是加入一個額外的jar包的問題。

<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-java8</artifactId> <version>5.1.0.Final</version></dependency>

這種方式不用寫任何額外的代碼即可實(shí)現(xiàn)對Java 8的支持,但是同時也明確的和JPA provider之間的直接依賴關(guān)系。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 恩施市| 黄浦区| 南京市| 乐平市| 广州市| 高雄市| 徐汇区| 呼图壁县| 关岭| 东明县| 灵璧县| 玉门市| 道孚县| 安国市| 固始县| 蒙自县| 白城市| 河西区| 淄博市| 合水县| 绥江县| 海淀区| 嵊泗县| 汤阴县| 孙吴县| 喀喇沁旗| 彩票| 绥中县| 朝阳区| 肥城市| 海淀区| 聂拉木县| 洛宁县| 静乐县| 临洮县| 噶尔县| 进贤县| 东至县| 灵石县| 宜川县| 华容县|