很高兴知道您喜欢使用该框架。
使用注释执行此操作的方法是使用@MemberOrder
,而不是@CollectionLayout
。
但是,如果您有一个layout.xml
文件,那么这(应该)覆盖@MemberOrder
注释。在这种情况下,列的顺序与layout.xml
.
您还可以使用<collection id="xxx" hidden="ALL_TABLES">
(或替代@CollectionLayout(hidden=Where.ALL_TABLES)
)隐藏您不想显示为列的属性。
综上所述,我最近确实发现了一个我认为是错误的错误(在 上1.13.0
):layout.xml
即使用于对象形式,似乎也被集合顺序忽略了。这是不一致的,我还没有深入了解它。我的解决方法是重新添加@MemberOrder
注释;这成功了。
另一个警告:如果您有选项卡和常规字段集的复杂组合,那么您会发现选项卡中的那些属性被认为是第一个,即使在它之前的字段集中有一个属性。这可以说是一个错误,但它是实现的一个症状:代码在字段集之前对选项卡组/选项卡进行了深度遍历。
最后,这里有一个技巧。您可以做的是在要在列中显示的实体上定义一堆派生属性,并进行配置,以便仅在表格中显示这些属性,并以对象形式隐藏,例如:
public class Customer {
@Getter @Setter private String name;
public String getNameAsColumn() { return getName(); }
}
然后在layout.xml
:
<property id="name" hidden="ALL_TABLES"/>
<property id="nameAsColumn hidden="OBJECT_FORMS">
<named>Name</named>
</property>
HTH丹