У меня есть приложение весенней загрузки (Spring boot 2) с данными о Spring jpa.i у меня есть 3 таблицы MYSQL для хранения информации о пользователях, ролях и разрешениях
- Пользователь будет содержать основные данные пользователя, такие как имя пользователя, пароль, имя, фамилия.
- Роли представляют роли пользователя, такие как администратор, пользователь, персонал, тест (пользователь может иметь много ролей)
- Разрешение имеет 3 возможности: чтение, запись, настройка (каждая роль имеет много разрешений)
- UserRole - объединенная таблица для пользователя и ролей
- RolePermission - объединенная таблица для ролей и разрешений
Ищу службу загрузки Spring, которая будет возвращать false, если пользователь не проверен по таблице User, если пользователь подтвержден успешно, тогда ответ должен содержать роли и разрешения пользователя.
Мне удалось создать пример службы отдыха, но не удалось настроить ниже
- Как настроить классы сущностей для отображения oneToMany в этом требовании
- Каким будет соответствующий запрос в интерфейсе репозитория
Пожалуйста, смотрите таблицы сущностей
@Entity
@Table( name = "TURBINE_USER" )
public class PortalUser {
public PortalUser() {
}
public PortalUser(long userID ,String userName , String password , String firstName, String lastName, String email) {
this.userID = userID;
this.userName = userName;
this.password = password;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
@Id
@Column(name="USER_ID",unique=true)
private long userID;
@NotNull
@Column(name="LOGIN_NAME",unique=true)
private String userName;
@NotNull
@Column(name="PASSWORD_VALUE")
private String password;
@NotNull
@ColumnDefault("")
@Column(name="FIRST_NAME")
private String firstName;
@NotNull
@ColumnDefault("")
@Column(name="LAST_NAME")
private String lastName;
@Column(name="EMAIL")
private String email;
@Column(name="CONFIRM_VALUE")
private String confirmValue;
@NotNull
@Column(name="CREATED")
private Timestamp createdDt;
@NotNull
@Column(name="MODIFIED")
private Timestamp modified;
@NotNull
@Column(name="LAST_LOGIN")
private Timestamp lastLogin;
@Column(name="DISABLED")
private char disabled;
@Column(name="OBJECTDATA")
private byte[] objectData;
@NotNull
@Column(name="PASSWORD_CHANGED")
private Timestamp passwordChanged;
// getters and setters
}
@Entity
@Table(name = "TURBINE_ROLE")
public class Role {
@Id
@Column(name= "ROLE_ID",unique = true)
private long roleId;
@Column(name= "ROLE_NAME")
private String roleName;
}
@Entity
@Table(name ="TURBINE_PERMISSION")
public class Permission {
@Id
@Column(name= "PERMISSION_ID")
private long permissionId;
@Column(name= "PERMISSION_NAME")
private String name;
}
@Entity
@Table(name= "TURBINE_USER_GROUP_ROLE")
public class UserRoles {
@Column(name="USER_ID")
private PortalUser user;
@Column(name="ROLE_ID")
private Role roles;
}
@Entity
@Table(name="TURBINE_ROLE_PERMISSION")
public class RolePermission {
@Column(name= "ROLE_ID")
private Role roleId;
@Column(name= "PERMISSIONID")
private Permission permissionId;
}