代码之家  ›  专栏  ›  技术社区  ›  Shivam Aggarwal

service builder支持使用Java 8日期类吗?

  •  1
  • Shivam Aggarwal  · 技术社区  · 8 年前

    <column name="createDate" type="LocalDate" />
    

    <column name="createDate" type="Date" />

    有没有其他方法来实现这一点?调整hibernate版本是否允许在同一版本上使用,如果允许,是否有效?

    2 回复  |  直到 8 年前
        1
  •  3
  •   Olaf Kock    8 年前

    Liferay 6.2从Java 7兼容性开始,后来才与Java 8兼容,这主要是由于受支持的应用程序服务器的限制——这很好地表明,对于Java 8类来说,没有什么可预见的。而他们 工作,你可能会遇到未经测试的领域。我不是说它有也没有-尽管我怀疑你已经尝试过了,当你在这里问这个问题时遇到了问题。

    正如Guivani Grifante所说,在Liferay中升级Hibernate很可能会导致一个巨大的混乱,如果你准备好了,我宁愿要求升级到Liferay 7(尽管我没有仔细检查它的Hibernate版本)。

    Date 键入并仅添加转换 getLocalDate() setLocalDate() YourModelImpl 然后自己实现转换。是的,有点奇怪,但可能是最快的修复,没有很多即时升级的麻烦。但是,如果您使用6.2 CE,请注意,将不会有任何更新,您应该尽早转到7。如果你在EE上,你会有一段时间的支持。

        2
  •  3
  •   Giovani Grifante    8 年前

    如果将带有Java 8的portlet部署到Liferay中,这不是唯一的问题。如果您的代码是用Java 8编译的,并且包含由service builder生成的远程服务,那么在部署此类portlet时将出现错误。这是因为Liferay使用Jodd api来分析字节码,并获取要在/api/jsonws中显示的参数名称 冬眠5。x支持新的date api,但是,如果不中断Liferay 6.2,升级的可能性很小。