字段名称最佳实践(隐藏或复合名称)

时间:2009-12-14 03:12:21

标签: shadowing field-names

正如上面的红色区块(警告这是一个主观问题并且可能会被关闭),可能没有一个石刻法,但我不明白为什么这样才能结束一个问题。

......撇开

我计划将Hibernate作为我的持久性框架实现,这可能会在实现时修复我的问题,但我有DB表转换为类和子类(现有生活中存在的许多细节和复杂性被省略:)) :

//dbo.a with column Name
class a {
  public String Name;
}

//dbo.b with column Name and a foreign key to dbo.a
class b extends a {
  public String Name;
}

那么,为了应该做什么以及为什么:

遮蔽:
我可以按原样保留这些,当处理编译时类型未知的对象时,这需要一些反射聪明(每http://forums.sun.com/thread.jspa?threadID=5419973)。

化合物名称:
我可以将我的所有字段命名为其类的名称,即a.aNameb.bName,这在现实生活中变得非常丑陋:Door.DoorNameRotatingDoor.RotatingDoorName

吸气者和二传手:
我没有提到这个,因为使用JavaBeans这些将从字段名称派生,我相信Hibernate使用带注释的POJO。

为了稍微影响结果,阴影似乎是最强大的,至少在我的情况下,类a扩展了一个定义了Name的抽象类,然后是b阴影适用时自己的Name。使用复合名称意味着如果我想在我的所有数据库表中添加NickName列,那么我必须将该字段添加到每个类型(然后继承点是什么?!)

最后,我决定找出那些曾经经历过这些技术的一个或多个实施的利弊的人,不得不在这个问题上说出来;或者那种方便的石刻最佳实践会做:)

-Nomad311

1 个答案:

答案 0 :(得分:0)

如果您需要在所有子类中使用它,则只应在基类中定义您的成员。 hibernate为类树提供了各种类型的映射。请查看手册中的Inheritance mapping以了解它。

您可以通过xml文件或注释来定义映射。