0

1 対多の関係で roo を介して適切な GUI を生成できません。特に、ユーザーに関連付ける機関 (春のセキュリティ) の中から選択するための複数選択要素が必要です。

RegisteredUser クラスを作成しました。

@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class RegisteredUser extends MyUser implements UserDetails,
    CredentialsContainer {

private String password;
private String username;
private Boolean enabled = true;
private Boolean accountNonExpired = true;
private Boolean credentialsNonExpired = true;
private Boolean accountNonLocked = true;

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<MyBaseAuthority> authorities = new HashSet<MyBaseAuthority>();

@Override
public void eraseCredentials() {
    password = null;
}

@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
    return authorities;
}

@Override
public String getPassword() {
    return password;
}

@Override
public String getUsername() {
    return username;
}

@Override
public boolean isAccountNonExpired() {
    return accountNonExpired;
}

@Override
public boolean isAccountNonLocked() {
    return accountNonLocked;
}

@Override
public boolean isCredentialsNonExpired() {
    return credentialsNonExpired;
}

@Override
public boolean isEnabled() {
    return enabled;
}
}

次に MyBaseAuthority クラス:

@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class MyBaseAuthority extends ObjectWithId implements
    GrantedAuthority {
   private String authority;

@Override
public String getAuthority() {
    return authority;
}
}

次に、MyBaseAuthority 用のコントローラーを手動で作成する必要がありましたが、RegisteredUser (webmvc コマンドによって生成されたもの) 用ではありません。

@RequestMapping("/registeredusers")
@Controller
@RooWebScaffold(path = "registeredusers", formBackingObject = RegisteredUser.class)
public class RegisteredUserController {
}

@RequestMapping("/authorities")
@Controller
@RooWebScaffold(path = "authorities", formBackingObject = MyBaseAuthority.class)
public class MyBaseAuthorityController {
}

GUI で、すべての権限と登録ユーザーを作成して一覧表示できます。ただし、登録ユーザーを作成するときは、文字列フィールドとブール フィールドしか設定できず、1 対多の関係は設定できません。どうすれば修正できますか?

4

1 に答える 1