我正在測試一個項目,使用Vaadin和Hibernate。我正在嘗試使用HbnContainer類將數據顯示到表中。問題是我不想顯示錶中兩個類的所有屬性。Vaadin表隱藏列和容器定製
例如:
@Entity
@Table(name="users")
class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String name;
@ManyToOne(cascade=CascadeType.PERSIST)
private UserRole role;
//getters and setters
}
和第二類:
@Entity
@Table(name="user_roles")
class UserRole {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String name;
//getters and setters
}
接下來,我檢索使用HbnContainer我的數據,並將其連接到表:
HbnContainer container = new HbnContainer(User.class, app);
table.setContainerDataSource(container);
該表只會顯示來自用戶的列,而對於「角色」,則會將角色ID代替。我如何隱藏該列,並將其替換爲UserRole.name?
我設法使用ColumnGenerator()來獲取表中的字符串值UserRole - 但我不能刪除以前的列,數值。
我錯過了什麼?或者,在顯示錶格之前「自定義」數據的最佳方式是什麼(如果我想在一個表格中顯示來自多個對象類型的數據..我該怎麼辦?)
如果我可以'我很快就會找到一個簡單的解決方案,我想我只是建立「手工」表。
那麼,對這件事的任何建議?
編輯:
我沒有表達自己以前。我需要知道的是如何在HbnContainer中使用嵌套pojos,並控制表中出現的屬性(和「子屬性」)。我試圖擴展並重新實現HbnContainer的某些部分,但是......無法正確執行。
對於前面的示例,從用戶表看起來像生成的表格:
Name |Role
George| 1
Alex | 2
我想是這樣的:
Name | Role
George| admin
Alex | user