0

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));

https://github.com/alejandro-du/crudui/blob/master/demo/src/main/java/org/vaadin/crudui/demo/ui/view/SimpleCrudView.java

4

2 に答える 2