私は変更できないOracleデータベースがあります。このデータベースでは、権限フィールドを持つユーザーテーブルがあります。多くのif文、コードの改善を避ける
CREATE TABLE USER (
ID NUMBER(38,0),
LOGIN VARCHAR2(6 BYTE) NOT NULL ENABLE,
PASSWORD VARCHAR2(200 BYTE) NOT NULL ENABLE,
BOOK_READ NUMBER(1,0),
BOOK_UPD NUMBER(1,0),
R_READ NUMBER(1,0),
R_UPD NUMBER(1,0),
...
...
)
例えば:
book_read = 1; - means that user has authority
book_upd = 0; - means that user he does not
report_read = 1;
を今私はこのようにチェックしています:
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
if (user.getBook_read() == 1) {
authorities.add(new SimpleGrantedAuthority("ROLE_BOOK_READ"));
}
if (user.getBook_upd() == 1) {
authorities.add(new SimpleGrantedAuthority("ROLE_BOOK_UPD"));
}
if (user.getReport_read() == 1) {
authorities.add(new SimpleGrantedAuthority("ROLE_REPORT_READ"));
}
私は当局(約20の多くを持って、それらはすべてで別の列を持っています表)。誰かがコードを改善する方法を提案していますか?
これはコードレビューに属すると思いますが、[マイグレーションチェックリスト](https://codereview.meta.stackexchange.com/a/1689/150216)を確認してください。 –
try switch文 – imk
多くの権限を持っている "*という意味ですか?幾つ?それらはどのように保存されますか?彼らはすべて 'USER'テーブル内の個々の列ですか?コードを改善する助けが必要な場合は、少なくとも関連性の高い情報を提供する必要があります。 – Andreas