Commit changes before create a new module
This commit is contained in:
parent
9cb9cdb030
commit
6072708d8a
|
@ -0,0 +1,51 @@
|
|||
package eu.eudat.migration.controllers;
|
||||
|
||||
import eu.eudat.data.entities.DatasetProfile;
|
||||
import eu.eudat.migration.dao.TemplateRepository;
|
||||
import eu.eudat.migration.entities.Template;
|
||||
import eu.eudat.migration.entities.User;
|
||||
import eu.eudat.migration.services.DMPRoadmapService;
|
||||
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
||||
import eu.eudat.types.ApiMessageCode;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/")
|
||||
@ConditionalOnProperty(prefix = "roadmap", name="database.url")
|
||||
public class MigrateController {
|
||||
private final DMPRoadmapService roadmapMigration;
|
||||
|
||||
@Autowired
|
||||
public MigrateController(DMPRoadmapService roadmapMigration) {
|
||||
this.roadmapMigration = roadmapMigration;
|
||||
}
|
||||
|
||||
@GetMapping(path = "template/all", produces = "application/json")
|
||||
public ResponseEntity<List<Template>> getAllTemplates() {
|
||||
return ResponseEntity.ok(this.roadmapMigration.getTemplates());
|
||||
}
|
||||
|
||||
@GetMapping(path = "template/argos/memory", produces = "application/json")
|
||||
public ResponseEntity<List<eu.eudat.models.data.admin.composite.DatasetProfile>> getDatasetProfiles() {
|
||||
return ResponseEntity.ok(this.roadmapMigration.getDatesetProfiles());
|
||||
}
|
||||
|
||||
@GetMapping(path = "user/all", produces = "application/json")
|
||||
public ResponseEntity<List<User>> getAllUsers() {
|
||||
return ResponseEntity.ok(this.roadmapMigration.getUsers());
|
||||
}
|
||||
|
||||
@GetMapping(path = "migration/execute", produces = "application/json")
|
||||
public ResponseEntity<Object> migrate() {
|
||||
this.roadmapMigration.migrate();
|
||||
return ResponseEntity.ok(new ResponseItem<UUID>().status(ApiMessageCode.NO_MESSAGE));
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
package eu.eudat.migration.controllers;
|
||||
|
||||
import eu.eudat.data.entities.DatasetProfile;
|
||||
import eu.eudat.migration.DMPRoadmapMigration;
|
||||
import eu.eudat.migration.dao.TemplateRepository;
|
||||
import eu.eudat.migration.entities.Template;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/template")
|
||||
@ConditionalOnProperty(prefix = "roadmap", name="database.url")
|
||||
public class TemplateController {
|
||||
|
||||
private final TemplateRepository templateRepository;
|
||||
private final DMPRoadmapMigration roadmapMigration;
|
||||
|
||||
@Autowired
|
||||
public TemplateController(TemplateRepository templateRepository, DMPRoadmapMigration roadmapMigration) {
|
||||
this.templateRepository = templateRepository;
|
||||
this.roadmapMigration = roadmapMigration;
|
||||
}
|
||||
|
||||
@GetMapping(path = "/all", produces = "application/json")
|
||||
public ResponseEntity<List<Template>> getAllTemplates() {
|
||||
return ResponseEntity.ok(this.templateRepository.findAll());
|
||||
}
|
||||
|
||||
@GetMapping(path = "/argos/memory", produces = "application/json")
|
||||
public ResponseEntity<List<eu.eudat.models.data.admin.composite.DatasetProfile>> getDatasetProfiles() {
|
||||
return ResponseEntity.ok(this.roadmapMigration.getDatesetProfiles());
|
||||
}
|
||||
|
||||
@GetMapping(path = "/argos/saved", produces = "application/json")
|
||||
public ResponseEntity<List<DatasetProfile>> getProfiles() {
|
||||
return ResponseEntity.ok(this.roadmapMigration.getProfiles());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package eu.eudat.migration.dao;
|
||||
|
||||
import eu.eudat.migration.entities.User;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
@ConditionalOnProperty(prefix = "roadmap", name="database.url")
|
||||
public interface UserRepository extends JpaRepository<User, Long> {
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
package eu.eudat.migration.entities;
|
||||
|
||||
import org.hibernate.annotations.LazyCollection;
|
||||
import org.hibernate.annotations.LazyCollectionOption;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@Entity
|
||||
@Table(name = "answers")
|
||||
public class Answer {
|
||||
|
||||
@Id
|
||||
private Long id;
|
||||
private String text;
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "user_id")
|
||||
private User user;
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "question_id")
|
||||
private Question question;
|
||||
@Column(name = "created_at")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date createdAt;
|
||||
@Column(name = "updated_at")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date updatedAt;
|
||||
@ManyToMany(cascade = CascadeType.ALL)
|
||||
@JoinTable(name = "answers_question_options",
|
||||
joinColumns = {@JoinColumn(name = "answer_id")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "question_option_id")}
|
||||
)
|
||||
@LazyCollection(LazyCollectionOption.FALSE)
|
||||
private Set<QuestionOption> questionOptions = new HashSet<>();
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Answer{" +
|
||||
"id=" + id +
|
||||
", text='" + text + '\'' +
|
||||
", user=" + user +
|
||||
", question=" + question +
|
||||
", createdAt=" + createdAt +
|
||||
", updatedAt=" + updatedAt +
|
||||
", questionOptions=" + questionOptions +
|
||||
'}';
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public User getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public void setUser(User user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public Question getQuestion() {
|
||||
return question;
|
||||
}
|
||||
|
||||
public void setQuestion(Question question) {
|
||||
this.question = question;
|
||||
}
|
||||
|
||||
public Date getCreatedAt() {
|
||||
return createdAt;
|
||||
}
|
||||
|
||||
public void setCreatedAt(Date createdAt) {
|
||||
this.createdAt = createdAt;
|
||||
}
|
||||
|
||||
public Date getUpdatedAt() {
|
||||
return updatedAt;
|
||||
}
|
||||
|
||||
public void setUpdatedAt(Date updatedAt) {
|
||||
this.updatedAt = updatedAt;
|
||||
}
|
||||
|
||||
public Set<QuestionOption> getQuestionOptions() {
|
||||
return questionOptions;
|
||||
}
|
||||
|
||||
public void setQuestionOptions(Set<QuestionOption> questionOptions) {
|
||||
this.questionOptions = questionOptions;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package eu.eudat.migration.entities;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
|
||||
@Entity
|
||||
@Table(name = "perms")
|
||||
public class Perm {
|
||||
|
||||
@Id
|
||||
private Long id;
|
||||
private String name;
|
||||
@Column(name = "created_at")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date createdAt;
|
||||
@Column(name = "updated_at")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date updatedAt;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Perm{" +
|
||||
"id=" + id +
|
||||
", name='" + name + '\'' +
|
||||
", createdAt=" + createdAt +
|
||||
", updatedAt=" + updatedAt +
|
||||
'}';
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Date getCreatedAt() {
|
||||
return createdAt;
|
||||
}
|
||||
|
||||
public void setCreatedAt(Date createdAt) {
|
||||
this.createdAt = createdAt;
|
||||
}
|
||||
|
||||
public Date getUpdatedAt() {
|
||||
return updatedAt;
|
||||
}
|
||||
|
||||
public void setUpdatedAt(Date updatedAt) {
|
||||
this.updatedAt = updatedAt;
|
||||
}
|
||||
}
|
|
@ -1,11 +1,13 @@
|
|||
package eu.eudat.migration.entities;
|
||||
|
||||
import org.hibernate.annotations.LazyCollection;
|
||||
import org.hibernate.annotations.LazyCollectionOption;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
import java.util.*;
|
||||
|
||||
@Entity
|
||||
@Table(name = "plans")
|
||||
@SuppressWarnings("JpaAttributeTypeInspection")
|
||||
public class Plan {
|
||||
|
||||
@Id
|
||||
|
@ -51,6 +53,17 @@ public class Plan {
|
|||
private String ethicalIssuesReport;
|
||||
@Column(name = "funding_status")
|
||||
private FundingStatus fundingStatus;
|
||||
@ManyToMany(cascade = CascadeType.ALL)
|
||||
@JoinTable(name = "roles",
|
||||
joinColumns = {@JoinColumn(name = "plan_id")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "user_id")}
|
||||
)
|
||||
@LazyCollection(LazyCollectionOption.FALSE)
|
||||
private Set<User> users = new HashSet<>();
|
||||
@OneToMany(cascade = CascadeType.ALL)
|
||||
@JoinColumn(name = "plan_id")
|
||||
@LazyCollection(LazyCollectionOption.FALSE)
|
||||
private Set<Answer> answers = new HashSet<>();
|
||||
|
||||
public enum Visibility {
|
||||
ORGANIZATION,
|
||||
|
@ -224,4 +237,20 @@ public class Plan {
|
|||
public void setFundingStatus(FundingStatus fundingStatus) {
|
||||
this.fundingStatus = fundingStatus;
|
||||
}
|
||||
|
||||
public Set<User> getUsers() {
|
||||
return users;
|
||||
}
|
||||
|
||||
public void setUsers(Set<User> users) {
|
||||
this.users = users;
|
||||
}
|
||||
|
||||
public Set<Answer> getAnswers() {
|
||||
return answers;
|
||||
}
|
||||
|
||||
public void setAnswers(Set<Answer> answers) {
|
||||
this.answers = answers;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,126 @@
|
|||
package eu.eudat.migration.entities;
|
||||
|
||||
import org.hibernate.annotations.LazyCollection;
|
||||
import org.hibernate.annotations.LazyCollectionOption;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@Entity
|
||||
@Table(name = "users")
|
||||
public class User {
|
||||
|
||||
@Id
|
||||
private Long id;
|
||||
private String firstname;
|
||||
private String surname;
|
||||
private String email;
|
||||
@Column(name = "created_at")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date createdAt;
|
||||
@Column(name = "updated_at")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date updatedAt;
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "org_id")
|
||||
private Organization organization;
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "language_id")
|
||||
private Language language;
|
||||
@ManyToMany(cascade = CascadeType.ALL)
|
||||
@JoinTable(name = "users_perms",
|
||||
joinColumns = {@JoinColumn(name = "user_id")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "perm_id")}
|
||||
)
|
||||
@LazyCollection(LazyCollectionOption.FALSE)
|
||||
private Set<Perm> perms = new HashSet<>();
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "User{" +
|
||||
"id=" + id +
|
||||
", firstname='" + firstname + '\'' +
|
||||
", surname='" + surname + '\'' +
|
||||
", email='" + email + '\'' +
|
||||
", createdAt=" + createdAt +
|
||||
", updatedAt=" + updatedAt +
|
||||
", organization=" + organization +
|
||||
", language=" + language +
|
||||
", perms=" + perms +
|
||||
'}';
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getFirstname() {
|
||||
return firstname;
|
||||
}
|
||||
|
||||
public void setFirstname(String firstname) {
|
||||
this.firstname = firstname;
|
||||
}
|
||||
|
||||
public String getSurname() {
|
||||
return surname;
|
||||
}
|
||||
|
||||
public void setSurname(String surname) {
|
||||
this.surname = surname;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public Date getCreatedAt() {
|
||||
return createdAt;
|
||||
}
|
||||
|
||||
public void setCreatedAt(Date createdAt) {
|
||||
this.createdAt = createdAt;
|
||||
}
|
||||
|
||||
public Date getUpdatedAt() {
|
||||
return updatedAt;
|
||||
}
|
||||
|
||||
public void setUpdatedAt(Date updatedAt) {
|
||||
this.updatedAt = updatedAt;
|
||||
}
|
||||
|
||||
public Organization getOrganization() {
|
||||
return organization;
|
||||
}
|
||||
|
||||
public void setOrganization(Organization organization) {
|
||||
this.organization = organization;
|
||||
}
|
||||
|
||||
public Language getLanguage() {
|
||||
return language;
|
||||
}
|
||||
|
||||
public void setLanguage(Language language) {
|
||||
this.language = language;
|
||||
}
|
||||
|
||||
public Set<Perm> getPerms() {
|
||||
return perms;
|
||||
}
|
||||
|
||||
public void setPerms(Set<Perm> perms) {
|
||||
this.perms = perms;
|
||||
}
|
||||
}
|
|
@ -1,13 +1,11 @@
|
|||
package eu.eudat.migration;
|
||||
package eu.eudat.migration.services;
|
||||
|
||||
import eu.eudat.logic.managers.AdminManager;
|
||||
import eu.eudat.logic.managers.MetricsManager;
|
||||
import eu.eudat.logic.services.ApiContext;
|
||||
import eu.eudat.migration.dao.TemplateRepository;
|
||||
import eu.eudat.migration.entities.Question;
|
||||
import eu.eudat.migration.entities.QuestionFormat;
|
||||
import eu.eudat.migration.entities.Template;
|
||||
import eu.eudat.migration.entities.Theme;
|
||||
import eu.eudat.migration.dao.UserRepository;
|
||||
import eu.eudat.migration.entities.*;
|
||||
import eu.eudat.models.data.admin.components.datasetprofile.Field;
|
||||
import eu.eudat.models.data.admin.components.datasetprofile.FieldSet;
|
||||
import eu.eudat.models.data.admin.components.datasetprofile.Page;
|
||||
|
@ -17,43 +15,57 @@ import eu.eudat.models.data.components.commons.DefaultValue;
|
|||
import eu.eudat.models.data.components.commons.Multiplicity;
|
||||
import eu.eudat.models.data.components.commons.ViewStyle;
|
||||
import eu.eudat.models.data.components.commons.Visibility;
|
||||
import eu.eudat.models.data.datasetprofile.DatasetProfileOverviewModel;
|
||||
import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
|
||||
import eu.eudat.models.data.dmp.DataManagementPlanEditorModel;
|
||||
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
||||
import eu.eudat.types.MetricNames;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
@Service
|
||||
@ConditionalOnProperty(prefix = "roadmap", name = "database.url")
|
||||
public class DMPRoadmapMigration implements CommandLineRunner {
|
||||
|
||||
public class DMPRoadmapService {
|
||||
/** DMPRoadmap Repositories*/
|
||||
private final TemplateRepository templateRepository;
|
||||
private final UserRepository userRepository;
|
||||
/** Argos beans */
|
||||
private final ApiContext apiContext;
|
||||
private final MetricsManager metricsManager;
|
||||
/** Profiles */
|
||||
/** Data */
|
||||
private final List<DatasetProfile> datasetProfiles = new ArrayList<>();
|
||||
private final List<eu.eudat.data.entities.DatasetProfile> profiles = new ArrayList<>();
|
||||
private final List<DataManagementPlanEditorModel> dmps = new ArrayList<>();
|
||||
private final List<DatasetWizardModel> datasets = new ArrayList<>();
|
||||
/** Metadata */
|
||||
private final Map<Long, UUID> groups = new HashMap<>();
|
||||
|
||||
@Autowired
|
||||
public DMPRoadmapMigration(TemplateRepository templateRepository, ApiContext apiContext, MetricsManager metricsManager) {
|
||||
public DMPRoadmapService(TemplateRepository templateRepository, UserRepository userRepository, ApiContext apiContext, MetricsManager metricsManager) {
|
||||
this.templateRepository = templateRepository;
|
||||
this.userRepository = userRepository;
|
||||
this.apiContext = apiContext;
|
||||
this.metricsManager = metricsManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(String... args) {
|
||||
public void migrate() {
|
||||
List<Template> templates = templateRepository.findAll();
|
||||
List<User> users = userRepository.findAll();
|
||||
templates.forEach(template -> {
|
||||
DatasetProfile datasetProfile = buildDatasetProfile(template);
|
||||
this.datasetProfiles.add(datasetProfile);
|
||||
this.createProfile(datasetProfile, template);
|
||||
// this.createProfile(datasetProfile, template);
|
||||
template.getPlans().forEach(plan -> {
|
||||
DataManagementPlanEditorModel dmpModel = this.buildDMP(plan, null);
|
||||
this.dmps.add(dmpModel);
|
||||
});
|
||||
});
|
||||
users.forEach(user -> {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -68,10 +80,36 @@ public class DMPRoadmapMigration implements CommandLineRunner {
|
|||
datasetProfile.setVersion(template.getVersion());
|
||||
datasetProfile = this.apiContext.getOperationsContext().getDatabaseRepository().
|
||||
getDatasetProfileDao().createOrUpdate(datasetProfile);
|
||||
this.profiles.add(datasetProfile);
|
||||
metricsManager.increaseValue(MetricNames.DATASET_TEMPLATE, 1, MetricsManager.datasetTemplateStatus.get(datasetProfile.getStatus()));
|
||||
}
|
||||
|
||||
private DataManagementPlanEditorModel buildDMP(Plan plan, eu.eudat.data.entities.DatasetProfile datasetProfile) {
|
||||
DataManagementPlanEditorModel dmpModel = new DataManagementPlanEditorModel();
|
||||
return dmpModel;
|
||||
}
|
||||
|
||||
private DatasetWizardModel buildDataset(Plan plan, eu.eudat.data.entities.DatasetProfile datasetProfile) {
|
||||
DatasetWizardModel datasetModel = new DatasetWizardModel();
|
||||
datasetModel.setDataRepositories(new ArrayList<>());
|
||||
if(datasetProfile != null) {
|
||||
/* TODO Dataset Definition */
|
||||
PagedDatasetProfile datasetProfileDefinition = new PagedDatasetProfile();
|
||||
datasetModel.setDatasetProfileDefinition(datasetProfileDefinition);
|
||||
/* TODO DMP */
|
||||
DatasetProfileOverviewModel profile = new DatasetProfileOverviewModel();
|
||||
profile.setId(datasetProfile.getId());
|
||||
profile.setLabel(datasetProfile.getLabel());
|
||||
datasetModel.setProfile(profile);
|
||||
}
|
||||
datasetModel.setDescription(plan.getDescription());
|
||||
datasetModel.setExternalDatasets(new ArrayList<>());
|
||||
datasetModel.setLabel(plan.getTitle());
|
||||
datasetModel.setRegistries(new ArrayList<>());
|
||||
datasetModel.setServices(new ArrayList<>());
|
||||
datasetModel.setTags(new ArrayList<>());
|
||||
return datasetModel;
|
||||
}
|
||||
|
||||
private DatasetProfile buildDatasetProfile(Template template) {
|
||||
DatasetProfile datasetProfile = new DatasetProfile();
|
||||
datasetProfile.setLabel(template.getTitle());
|
||||
|
@ -237,7 +275,19 @@ public class DMPRoadmapMigration implements CommandLineRunner {
|
|||
return datasetProfiles;
|
||||
}
|
||||
|
||||
public List<eu.eudat.data.entities.DatasetProfile> getProfiles() {
|
||||
return profiles;
|
||||
public List<DataManagementPlanEditorModel> getDmps() {
|
||||
return dmps;
|
||||
}
|
||||
|
||||
public List<DatasetWizardModel> getDatasets() {
|
||||
return datasets;
|
||||
}
|
||||
|
||||
public List<Template> getTemplates() {
|
||||
return templateRepository.findAll();
|
||||
}
|
||||
|
||||
public List<User> getUsers() {
|
||||
return userRepository.findAll();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue