entity
これら2つのフィールドを持つ があります。
private boolean alarmActive;
private boolean messageHasBeenSent;
そして、これを Vaadin CRUD API で表示すると。
GridCrud<Alarm> alarmCrud = new GridCrud<>(Alarm.class);
CrudFormFactory<Alarm> crudFormFactory = new DefaultCrudFormFactory<Alarm>(Alarm.class);
alarmCrud.setCrudFormFactory(crudFormFactory);
alarmCrud.getGrid().setColumns("name", "email", "message", "alarmActive", "messageHasBeenSent", "sa0Min", "sa0Max", "sa1Min", "sa1Max", "sa1dMin", "sa1dMax", "sa2dMin", "sa2dMax", "sa3dMin", "sa3dMax", "a0Min", "a0Max", "a1Min", "a1Max", "a2Min", "a2Max", "a3Min", "a3Max");
alarmCrud.getGrid().setColumnReorderingAllowed(true);
crudFormFactory.setUseBeanValidation(true);
crudFormFactory.setVisibleProperties(new String[] { "name", "email", "message", "alarmActive", "messageHasBeenSent", "sa0Min", "sa0Max", "sa1Min", "sa1Max", "sa1dMin", "sa1dMax", "sa2dMin", "sa2dMax", "sa3dMin", "sa3dMax", "a0Min", "a0Max", "a1Min", "a1Max", "a2Min", "a2Max", "a3Min", "a3Max" });
CRUD データベースに新しい行を追加しようとすると、このビューが表示されます。
質問:
両方のチェック ボックスを同じ行に配置したいのですが? この現在のエンティティでそれを行うにはどうすればよいですか?
同じ行に複数のチェックボックスを配置する方法があることは知っていますが、各チェックボックスがエンティティになる必要があり、そのエンティティがデータベースの CRUD エンティティに接続されていないため、その方法は正しくありません。
以下のこの例では、彼は使用しています
@ManyToMany
@Fetch(FetchMode.JOIN)
@NotNull
private Set<Group> groups = new HashSet<>();
1 行に複数のチェック ボックスを作成します。問題は、エンティティが空で始まる場合、エンティティがエンティティGroup
と異なることです。User
groupService
ここで、チェック ボックス プロバイダーに をロードすると、同じ行に複数のチェック ボックスが作成されます。
crud.getCrudFormFactory().setFieldProvider("groups", new CheckBoxGroupProvider<>("Groups", groupService.findAll(), Group::getName));