java web的版本_关于java:@Web版本中的版本中断

我们正在使用源链接在Eclipse的j2ee Web项目中包含生成的休眠bean。我们有一个包含的项目,其中包含各种实用程序和服务,而主要项目除外。

当我们将bean导入实用程序项目时,bean会被罚款。他们中有休眠4.3和hibernate-jpa 2.1 jar。但是,当我将相同的模型bean导入主项目时,@Version批注会出现编译错误。它说 :

JSR 220:Java Persistence API,9.1.17:版本属性仅支持以下类型:int,Integer,short,Short,long,Long,Timestamp。

代码是:

@Temporal(TemporalType.TIMESTAMP)

@Column(name ="UPDT_TMSTMP", nullable = false)

@Version

private Date updateTimest

正如我所说,当导入到一个简单的Java项目中时,它可以完美地工作,但是当导入到一个Web模块(我们尝试了几次)中时,它会收到此错误。错误文本似乎表明我们不能使用java.util.Date作为属性类型,但是同样,我们在导入到实用程序项目中之前就使用了它。

我们不知为何要解释为什么公用事业项目与Web模块之间存在差异。我们希望在Web模块中使用它,因为我们希望能够移动这些实用程序模块,而无需多次导入相同的模型bean。

有任何想法吗?甚至调查的渠道也将比我们现在拥有的更好。我们正在罢工。

您确定它是编译错误,而不是Eclipse插件(例如JPA插件)的错误吗? Java编译器不在乎带注释的字段的类型。 因此,错误很可能来自JPA集成插件,这可能是由错误配置的构建路径引起的(例如,如果JPA设置为与其他项目一样的旧版本)。

您是否尝试使用java.sql.Date而不是java.util.Date? 您可能还会检查数据库是否配置为以毫秒为单位存储时间戳。

您也可以尝试使用java.sql.Timestamp

请使用时间戳记。 有些国家有DST(从我的观点来看是愚蠢的想法)。 在这个国家/地区,日期可以存在,可以重复或永远不存在。 时间戳没有这种例外情况,并且比SSOT更好。

顺便说一句:如果您有移动的服务器(在飞机,汽车或潜水艇中,有一天可能会更改时区),则本地化的TimestampZ可能更好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值