Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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 Vaadin表格-AddNestedContainerProperty_Java_Vaadin_Jpa 2.0_Vaadin7_Nested Properties - Fatal编程技术网

Java Vaadin表格-AddNestedContainerProperty

Java Vaadin表格-AddNestedContainerProperty,java,vaadin,jpa-2.0,vaadin7,nested-properties,Java,Vaadin,Jpa 2.0,Vaadin7,Nested Properties,我需要任何帮助! 提前谢谢 如果我没有弄错你的问题,你想让BeanItemContainer实体的集合显示在每一列中吗 我认为有两种可能性 选项1-为集合使用包装类,并使用addNestedContainerBean 一种可能是在LocationBasedRole中不使用Sets,而是使用扩展HashSet的包装类。 然后可以使用addNestedContainerBean方法 我用BeanItemContainer实体团队创建了一个小示例 bean.addNestedContainerPro

我需要任何帮助!


提前谢谢

如果我没有弄错你的问题,你想让BeanItemContainer实体的集合显示在每一列中吗

我认为有两种可能性

选项1-为
集合使用包装类,并使用
addNestedContainerBean

一种可能是在
LocationBasedRole
中不使用
Set
s,而是使用扩展
HashSet
的包装类。 然后可以使用
addNestedContainerBean
方法

我用BeanItemContainer实体
团队创建了一个小示例

bean.addNestedContainerProperty("roles");
bean.addNestedContainerProperty("locations");
由名称和团队成员组成。后者属于
成员类型

public class Team {

    private String teamName;
    private Members teamMembers;

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public Members getTeamMembers() {
        return teamMembers;
    }

    public void setTeamMembers(Members teamMembers) {
        this.teamMembers = teamMembers;
    }
}
正如您在
Members
类中所看到的,有一个方法
getMembers
,它返回一个字符串,其中包含以逗号分隔的团队成员名称列表

如果我们现在使用
addNestedContainerBean(“teamMembers”)
Vaadin尝试显示类
Members
中包含的所有属性。Vaadin将认为getMembers是名为members的字符串属性的getter,因此为其生成列

Vaadin还将显示一列“empty”,因为它将找到
Set
isEmpty
方法,并认为
empty
是要在列中显示的属性。所以我们告诉瓦丁把那根柱子移走

我的示例的最后一段代码如下所示:

public class TeamMember {

    private String firstName;
    private String lastName;
    private Integer age;

    // getters and setters
}
我的
团队
班级(你的
位置基地
)看起来像:

 public class TeamMember {

    private String firstName;
    private String lastName;
    private Integer age;

    // getters and setters
}
结果如下:

public class TeamMember {

    private String firstName;
    private String lastName;
    private Integer age;

    // getters and setters
}

如果我没弄错你的问题,你想让BeanItemContainer实体的集合显示在每一列中吗

我认为有两种可能性

选项1-为
集合使用包装类,并使用
addNestedContainerBean

一种可能是在
LocationBasedRole
中不使用
Set
s,而是使用扩展
HashSet
的包装类。 然后可以使用
addNestedContainerBean
方法

我用BeanItemContainer实体
团队创建了一个小示例

bean.addNestedContainerProperty("roles");
bean.addNestedContainerProperty("locations");
由名称和团队成员组成。后者属于
成员类型

public class Team {

    private String teamName;
    private Members teamMembers;

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public Members getTeamMembers() {
        return teamMembers;
    }

    public void setTeamMembers(Members teamMembers) {
        this.teamMembers = teamMembers;
    }
}
正如您在
Members
类中所看到的,有一个方法
getMembers
,它返回一个字符串,其中包含以逗号分隔的团队成员名称列表

如果我们现在使用
addNestedContainerBean(“teamMembers”)
Vaadin尝试显示类
Members
中包含的所有属性。Vaadin将认为getMembers是名为members的字符串属性的getter,因此为其生成列

Vaadin还将显示一列“empty”,因为它将找到
Set
isEmpty
方法,并认为
empty
是要在列中显示的属性。所以我们告诉瓦丁把那根柱子移走

我的示例的最后一段代码如下所示:

public class TeamMember {

    private String firstName;
    private String lastName;
    private Integer age;

    // getters and setters
}
我的
团队
班级(你的
位置基地
)看起来像:

 public class TeamMember {

    private String firstName;
    private String lastName;
    private Integer age;

    // getters and setters
}
结果如下:

public class TeamMember {

    private String firstName;
    private String lastName;
    private Integer age;

    // getters and setters
}

什么是MTable?@Jay,我正在为Vaadin使用玻璃图书馆,在这里你可以阅读更多关于它的信息,什么是MTable?@Jay,我正在为Vaadin使用玻璃图书馆,在这里你可以阅读更多关于它的信息,Tnx@codinghaus,但这不是我想要的。我希望表中有两列,一列显示roles.name,另一列必须显示locations.location。它们与LocationsBaseRole有很多关系,它们将被初始化为惰性。我认为您的主要问题是如何在单列中显示集合(角色/位置)的属性(roles.name和locations.location)(1列表示roles.name,1列表示locations.location)。我理解错了吗?Bc在我提出的方案中,我描述了如何解决这个问题。你有带位置/角色集的LocationBasedRoles,我有带团队成员集的团队。我创建了1列,其中显示了每个团队成员的name属性。为什么不能将其应用于角色和位置集?我看到的唯一区别是懒惰,但这与hibernate/jpa有关,而不是vaadin.Tnx@codinghaus,但这不是我想要的。我希望表中有两列,一列显示roles.name,另一列必须显示locations.location。它们与LocationsBaseRole有很多关系,它们将被初始化为惰性。我认为您的主要问题是如何在单列中显示集合(角色/位置)的属性(roles.name和locations.location)(1列表示roles.name,1列表示locations.location)。我理解错了吗?Bc在我提出的方案中,我描述了如何解决这个问题。你有带位置/角色集的LocationBasedRoles,我有带团队成员集的团队。我创建了1列,其中显示了每个团队成员的name属性。为什么不能将其应用于角色和位置集?我看到的唯一区别是懒惰,但这与hibernate/jpa有关,而不是vaadin。