首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA使用@Temporal类型的最佳实践

JPA使用@Temporal类型的最佳实践
EN

Stack Overflow用户
提问于 2012-11-13 20:21:22
回答 1查看 513关注 0票数 2

正如我们所知,Java日期/时间类型是可变的。因此,如果我们想要避免副作用,我们应该封装它们。

我正在寻找一种方法,允许我在JPA2.0中使用这些数据类型,同时实现封装目标。

在我的实践中,我经常使用类似下面这段代码的模式:

代码语言:javascript
复制
// imports are omitted 

@Entity
@Access(AccessType.PROPERTY)
public class MyEntity {
    private Integer id;

    @Access(AccessType.FIELD)
    private Calendar createdAt;

    public MyEntity() {
        createdAt = Calendar.getInstance();
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Transient
    public Date getCreatedAt() {
        return createdAt.getTime();
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt.setTime(createdAt);
    }

}

有没有更好的方法呢?

提前谢谢。祝您今天愉快。

EN

回答 1

Stack Overflow用户

发布于 2012-11-13 21:12:33

日期可变是一个我们都不得不接受的设计怪癖。我们已经学会了接受它,通过假装Date是不可变的,并且从来没有操纵过它( Sun还通过在上面加上一些不赞成的词来让它变得更容易)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13360667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档