我在建模实体时有点矛盾。@瞬间vs装饰者
我们有一个具有6-8个实例变量的实体。其中两个实际上并没有保存在数据库中,但仅用于做一些验证或在UI中显示。因此,当我们获取实体时,我们用一些外部查找来填充。
现在,根据我的同事之一,其更好的做法是使用装饰器代替使用@Transient。我在某种程度上同意。因为它阐明了DB代表的实际模型。
但它会增加对一些案件的补充样板(如业务我可以命名实体MyEntityBO,但如果我用它的UI ......再次名称将是有点混乱。
我的问题是,什么场景它更好地使用@Transient而不是装饰器,反之亦然
无论其他字段或方法。出于这个原因,您不应该直接从UI中使用实体。您应该有一个特定于视图的模型,它是专门为该视图设计的模型的表示。该视图模型属于用户界面。视图模型可以通过合成封装原始模型,但这本身不是装饰器。这是除非你的应用程序是简单的CRUD,在这种情况下只需要使用@Transient。 – plalx
你可以显示示例代码来给出一个想法如何在这里添加装饰模式? –
@plalx在我的情况下,它并不总是用户界面。对象也用于其他验证。组合似乎更好地处理这种情况。创建2个对象。 ObjectUI,ObjectBO。所以只有用户界面需要的吸气剂才会在那里。所以不小心,这些东西不应该被用户界面看到,但应该存在于主要实体中,例如ID /密码可以隐藏。 (再次,这里的反指向是“@IgnoreJson”:)我试图理解“@Transient”在哪些情况下仍然可行。如果像你说的应用程序只是CRUD,那么只需要“@Transient” –