Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache ISIS:DomainObject中的列顺序-@MemberOrder不起作用_Java_Annotations_Isis - Fatal编程技术网

Java Apache ISIS:DomainObject中的列顺序-@MemberOrder不起作用

Java Apache ISIS:DomainObject中的列顺序-@MemberOrder不起作用,java,annotations,isis,Java,Annotations,Isis,我有以下问题: 我想对DomainObject的列进行排序,以便首先获得最重要的信息,即左。 因此,我使用了@MemberOrder注释,但这不起作用。我没有layout.xml,因此没有覆盖任何选项 下面是我的域对象的一些示例代码: @PersistenceCapable(identityType = IdentityType.DATASTORE, table = "jobs") @Extension(vendorName = "datanucleus", key = "datastore

我有以下问题: 我想对DomainObject的列进行排序,以便首先获得最重要的信息,即左。 因此,我使用了
@MemberOrder
注释,但这不起作用。我没有
layout.xml
,因此没有覆盖任何选项

下面是我的域对象的一些示例代码:

 @PersistenceCapable(identityType = IdentityType.DATASTORE, table = "jobs")
 @Extension(vendorName = "datanucleus", key = "datastore", value = "store-email")
 @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
 @DomainObjectLayout(cssClassFa = "envelope")
 public class EmailSend implements Comparable {

        @PrimaryKey(column = "email_id")
        @Persistent(primaryKey = "true", valueStrategy = IdGeneratorStrategy.IDENTITY, column = "email_id")
        @Property(editing=Editing.DISABLED)
        private int id;

        @Property(editing=Editing.DISABLED)
        @PropertyLayout(multiLine = 5)
        @Column(name = "text", length = 65535)
        @Title(sequence = "1")
        private String text;

        ...

        @MemberOrder(sequence = "1")
        public int getId() {
           return id;
        }

        @MemberOrder(sequence = "2")
        public String getText() {
           return text;
        }

        ...
 }

这些列的顺序是随机的,因此没有
@MemberOrder
起作用。我的代码中的错误在哪里?

我注意到了几件事

  • @Property
    仅适用于getter,而不适用于字段。我们确实支持将此注释添加到字段中,但这也是使用Project Lombok(Lombok将“移动”注释到getter)的用例。因此,您的文本属性可能显示为可编辑,即使您的意图可能是不可编辑

  • 您确实应该使用
    layout.xml
    ,它们将为您节省大量时间并允许更复杂的布局。您可以使用框架提供的“downloadLayoutXml”mixin操作下载初始布局

  • 对于你的问题:我不确定为什么
    @MemberOrder
    在这里没有得到尊重-代码片段在我看来没什么问题。但是,你可能想做的是-这是一个非常灵活的工具-提供的实现作为微调顺序的一种方式(甚至可以将属性完全省略为列,如果需要,甚至可以采用横切方式)

  • PS:如果您认为
    @MemberOrder
    确实存在问题并希望使用它,请在github上的测试用例应用程序中提出问题

    嗯 丹