java - JPA2 封装遗留数据库日期字段

标签 java jpa jpa-2.0

从旧数据库自动生成实体。许多表格具有非标准日期格式。 int 字段的各种深奥用法...其中可能包含世纪、年、月、日、小时、分钟、秒、一些串联分组以及对某些列采取的某些自由,以便在这里或那里节省一个字节。

无论如何,转换中没有 Elixir ,我的问题是,我认为用 Calendar 类型(作为 GregorianCalendar 类型实现)封装每个日期是最有意义的。这样我就可以拥有一致的界面。

我可能应该使这些字段不可访问,因此一切都需要通过日历对象进行。我需要注意哪些问题才能在查询中使用我的日期?

最佳答案

您可以在实体之上添加委托(delegate)层,以便将其公开给您的应用程序。 Eclipse 甚至会帮助您生成这些委托(delegate)(当然还需要对日期操作进行一些编辑)。然后,委托(delegate)将适当的数据映射到实体,这样您的数据库就不必更改。这肯定有助于在您的应用程序中创建一致的日期界面。缺点是它为数据持久性添加了额外的代码和另一层。

关于java - JPA2 封装遗留数据库日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739337/

相关文章:

java - Kindle Fire 和 GlSurfaceView.getHeight()

Hibernate 将重复项插入到 @OneToMany 集合中

java - @ElementCollection、@CollectionTable 和 Enum - 奇怪的删除/插入行为

java - 使用 Eclipse 指定数据库名称链接到 SQLServer 数据库?

java - JUnit、JPA、Hibernate 和 Postgres : How to test?

java获取方法集合

java - 具有隐式授予类型 Spring boot 应用程序的 OAuth 2.0

java - Webclient 发送没有正文的 POST 将得到 IllegalStateException

java - 如何在避免代码重复的同时使我的 Java 模型独立于 JPA 实体

hibernate - 如何将 javax/persistence/spi/PersistenceUnitInfo.getValidationMode() 与 WAS 6.1 一起使用