最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java擴(kuò)展Hibernate注解支持java8新時(shí)間類型

 更新時(shí)間:2014年04月17日 09:22:36   作者:  
這篇文章主要介紹了java擴(kuò)展Hibernate注解支持java8新時(shí)間類型,需要的朋友可以參考下

擴(kuò)展Hibernate注解@CreationTimestamp,@UpdateTimestamp支持Java8新的時(shí)間類型
Hibernate version: 4.3.5.Final

復(fù)制代碼 代碼如下:

package com.hibernate.annotation;

import org.hibernate.HibernateException;
import org.hibernate.tuple.AnnotationValueGeneration;
import org.hibernate.tuple.ValueGenerator;

import java.lang.annotation.Annotation;
import java.sql.Time;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Calendar;
import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 * User: ZhongGang
 * Date: 14-4-16
 * Time: 上午11:40
 * <p/>
 * 支持Java8新的時(shí)間包
 *
 * @see java.time.LocalDateTime
 * @see java.time.LocalDate
 * @see java.time.LocalTime
 */
public abstract class AbstractTimeGeneration<A extends Annotation> implements AnnotationValueGeneration<A> {
    protected ValueGenerator<?> generator;

    @Override
    public void initialize(A annotation, Class<?> propertyType) {
        if (LocalDateTime.class.isAssignableFrom(propertyType)) {
            generator = (session, owner) -> LocalDateTime.now();
        } else if (LocalDate.class.isAssignableFrom(propertyType)) {
            generator = (session, owner) -> LocalDate.now();
        } else if (LocalTime.class.isAssignableFrom(propertyType)) {
            generator = (session, owner) -> LocalTime.now();
        } else if (java.sql.Date.class.isAssignableFrom(propertyType)) {
            generator = (session, owner) -> new java.sql.Date(new Date().getTime());
        } else if (Time.class.isAssignableFrom(propertyType)) {
            generator = (session, owner) -> new Time(new Date().getTime());
        } else if (Timestamp.class.isAssignableFrom(propertyType)) {
            generator = (session, owner) -> new Timestamp(new Date().getTime());
        } else if (Date.class.isAssignableFrom(propertyType)) {
            generator = (session, owner) -> new Date();
        } else if (Calendar.class.isAssignableFrom(propertyType)) {
            generator = (session, owner) -> {
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(new Date());
                return calendar;
            };
        } else {
            throw new HibernateException("Unsupported property type for generator annotation " + annotation.getClass().getSimpleName());
        }
    }

    @Override
    public ValueGenerator<?> getValueGenerator() {
        return generator;
    }

    @Override
    public boolean referenceColumnInSql() {
        return false;
    }

    @Override
    public String getDatabaseGeneratedReferencedColumnValue() {
        return null;
    }
}

相關(guān)文章

  • 徹底搞懂Java多線程(三)

    徹底搞懂Java多線程(三)

    這篇文章主要給大家介紹了關(guān)于Java面試題之多線程和高并發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Java?詳解分析鏈表的中間節(jié)點(diǎn)

    Java?詳解分析鏈表的中間節(jié)點(diǎn)

    鏈表是基本的數(shù)據(jù)結(jié)構(gòu)之一,面試題中鏈表占很大一部分,可見鏈表操作是非常重要的。本篇文章我們來(lái)探究一下如何獲取鏈表的中間節(jié)點(diǎn)
    2022-01-01
  • 解決StringBuffer和StringBuilder的擴(kuò)容問題

    解決StringBuffer和StringBuilder的擴(kuò)容問題

    這篇文章主要介紹了解決StringBuffer和StringBuilder的擴(kuò)容問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java 反射之私有字段和方法詳細(xì)介紹

    Java 反射之私有字段和方法詳細(xì)介紹

    本文將介紹Java 反射之私有字段和方法的應(yīng)用,需呀了解的朋友可以參考下
    2012-11-11
  • 快速解決跨域請(qǐng)求問題:jsonp和CORS

    快速解決跨域請(qǐng)求問題:jsonp和CORS

    這篇文章主要介紹了快速解決跨域請(qǐng)求問題:jsonp和CORS,涉及jsonp和CORS的介紹,分享了前端 jQuery 寫法,后端 SpringMVC 配置,后端非 SpringMVC 配置等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • java批量導(dǎo)入導(dǎo)出文件的實(shí)例分享(兼容xls,xlsx)

    java批量導(dǎo)入導(dǎo)出文件的實(shí)例分享(兼容xls,xlsx)

    這篇文章主要給大家介紹了利用java批量導(dǎo)入導(dǎo)出文件的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,并且兼容xls,xlsx,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,下面跟著小編一起來(lái)看看詳細(xì)的介紹吧。
    2017-06-06
  • 手把手教你寫一個(gè)SpringBoot+gRPC服務(wù)

    手把手教你寫一個(gè)SpringBoot+gRPC服務(wù)

    本文將在本地環(huán)境下搭建gRPC客戶端和服務(wù)端,并成功建立通訊發(fā)送消息的方式,從而幫助大家深入了解gRPC在Spring Boot項(xiàng)目中的應(yīng)用,有需要的小伙伴可以參考下
    2023-12-12
  • java調(diào)用文心一言API的方法實(shí)現(xiàn)過(guò)程

    java調(diào)用文心一言API的方法實(shí)現(xiàn)過(guò)程

    Java是一種廣泛使用的編程語(yǔ)言,用于開發(fā)各種應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于java調(diào)用文心一言API的方法實(shí)現(xiàn),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 教你如何用好 Java 中的枚舉

    教你如何用好 Java 中的枚舉

    在本文中,我們將看到什么是 Java 枚舉,它們解決了哪些問題以及如何在實(shí)踐中使用 Java 枚舉實(shí)現(xiàn)一些設(shè)計(jì)模式。下面小編將為大家詳細(xì)介紹
    2021-09-09
  • Apache Calcite進(jìn)行SQL解析(java代碼實(shí)例)

    Apache Calcite進(jìn)行SQL解析(java代碼實(shí)例)

    Calcite是一款開源SQL解析工具, 可以將各種SQL語(yǔ)句解析成抽象語(yǔ)法樹AST(Abstract Syntax Tree), 之后通過(guò)操作AST就可以把SQL中所要表達(dá)的算法與關(guān)系體現(xiàn)在具體代碼之中,今天通過(guò)代碼實(shí)例給大家介紹Apache Calcite進(jìn)行SQL解析問題,感興趣的朋友一起看看吧
    2022-01-01

最新評(píng)論

明光市| 遵义县| 开封市| 古交市| 五华县| 韶关市| 塔河县| 光泽县| 涞源县| 弥勒县| 日喀则市| 固始县| 修水县| 公安县| 夏津县| 卓资县| 绩溪县| 攀枝花市| 南华县| 大石桥市| 六盘水市| 利川市| 忻城县| 苏尼特右旗| 永寿县| 永康市| 姜堰市| 清流县| 明水县| 调兵山市| 万宁市| 宁明县| 扶沟县| 苍山县| 嘉峪关市| 南岸区| 阿坝县| 铅山县| 那曲县| 民县| 东源县|