0

我有一个用于保存数据的 Person 类。我在一个做一些逻辑的库中使用这个类。例如:计算人的出生年份。这个图书馆也可以创造新的人。

在另一个使用上述库的项目中,我需要将 Person 类序列化到数据库中。我为此使用第三方库。按照惯例,我可以在特定字段上放置自定义注释,以便对其进行序列化。

所以我有一堆 Person 实例。我想把它们变成 PersonAnonnatedDB 实例。PersonAnonnateDB 扩展了 Person,并且没有添加新的方法或成员。PersonAnonnatedDB 确实添加了注释来告诉数据库如何序列化它,但仅此而已。

有什么方法可以从 Person 创建 PersonAnonnatedDB 而无需编写冗长而琐碎的复制构造函数?

我不介意用通用注释来注释 Person 。我只是不想将特定于数据库的注释添加到我的库项目中,因为我以后可能会使用其他数据库。

基本上,我想将数据层与持久层分离,同时编写最少的胶水代码。

4

3 回答 3

2

一种方法是使用带有xml 映射文档的 Hibernate 。这将您的代码与持久性设置完全分开,并且无需扩展您的 Person 对象。

于 2013-07-23T12:49:05.500 回答
0

继承:您绝对不能在“类?扩展人”中用新注释装饰原始类的字段(它们是私有的,对吗?您甚至不能引用它们)。

您关于将该类(某些应用程序、某些库等)放在何处的决定是错误的。您必须将该类移动到应用程序并正确装饰以实现持久性。

于 2013-07-23T12:47:52.083 回答
0

一种方法是将 Person 类扩展为 PersonAnnotatedDB,其中类的一个成员是 Person,一个成员是注释。不会有重复的 Person 数据,只是对 Person 实例的引用。

那么这一切都取决于您希望如何创建、使用它们或将它们与原始 Person 同步。

于 2013-07-23T12:05:11.700 回答