gpt4 book ai didi

java - JPA java.util.Calendar 映射相对于 java.util.Date 的优缺点

转载 作者:搜寻专家 更新时间:2023-11-01 03:25:51 24 4
gpt4 key购买 nike

我们的实体中有特定的数据库日期映射,映射为 java.util.Calendar,例如:

@Temporal( TemporalType.TIMESTAMP )
@Column( name = "END_DATE" )
private Calendar end;

请注意,这是目前针对包含日期和时间信息的 Oracle DATE 类型。我目前不明白为什么简单的 java.util.Date 不够用(甚至效果更好)。

问:

将数据库日期时间列映射为 java.util.Calendar 而不是 java.util.Date 有哪些优点和缺点?

Calendar 的一个缺点是在使用 JSF 表单时

<p:calendar value="#{managerBean.selectedEntity.end.time}"
...>
</p:calendar>

你必须使用end.time。显示时没问题,但提交时 Calendar 字段 end 默认为空(可选),例如在新的空白实体上,则提交将失败并出现异常:

javax.el.PropertyNotFoundException: /view/blaMasterGrid.xhtml @138,62 value="#{managerBean.selectedEntity.end.time}": Target Unreachable, 'null' returned null at 
.
.
.

那么,java.util.Calendar 相对于 java.util.Date 映射有哪些优势?

最佳答案

大量 java.util.Date 函数已弃用,因此如果您的应用程序需要对这些变量执行许多操作,则不应使用它。 Joda Time 是最适合使用的方法,而不是 java.util.Date 或 java.util.Calendar

java.util.Date 只剩下三个未弃用的函数,它们是构造函数、gettime() 和 settime()。这可能会在您处理代码时引起问题。为了简单映射,java.util.Date 就足够了。

关于java - JPA java.util.Calendar 映射相对于 java.util.Date 的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13949504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com