美文网首页DTeam团队日志
Grails 3中使用java.time时间类型

Grails 3中使用java.time时间类型

作者: 冯宇Ops | 来源:发表于2018-02-18 14:42 被阅读32次

    java8在JSR 310提案中,引入了新的时间日期类型java.time.*,这个包下的类借鉴了joda-time的设计,是线程安全的,提供很多方便的格式化与转换的方案。总之,java8以后官方强烈推荐使用新的java.time.*替代老旧的java.util.Calendarjava.util.Date

    但是对于Grails 3框架来说,由于需要最低支持java 7,因此对于java8的一些特性并非开箱即用,而且官方文档至今的domain范例中,依旧使用Date类型。

    grails-java8 plugin

    grails 官方有一个名为grails-java8的plugin,这个插件在官方文档并未提及,甚至插件本身没有任何文档。但是看插件的包名和测试代码,的确是测试JSR 310的支持,具体的插件效果可以参考测试代码

    Domain中使用java.time

    这个比较特殊,hibernate本身是支持java.time的(需hibernate5以上版本),在grails的domain中使用java.time类型,需要同时引入上述grails-java8 plugin和hibernate-java8两个依赖才可以。这样在Domain中就可以使用java.time类型了,JDBC这一层会自动转换为timestamp类型。具体的类型对照表参考hibernate的官方文档: https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#basic-provided

    总结

    在grails中使用java.time类型,在依赖中需要引入两个:

    dependencies {
        compile 'org.grails.plugins:grails-java8:1.2.2'
        compile 'org.hibernate:hibernate-java8:5.2.13.Final'
    }
    

    就可以在grails3中使用java.time类型了。

    相关文章

      网友评论

        本文标题:Grails 3中使用java.time时间类型

        本文链接:https://www.haomeiwen.com/subject/tshbtftx.html