no message
This commit is contained in:
parent
cc5e080219
commit
af8991b97a
|
@ -5,6 +5,11 @@ import eu.eudat.queryable.queryableentity.DataEntity;
|
|||
|
||||
|
||||
public class DatabaseAccess<T extends DataEntity> {
|
||||
|
||||
public DatabaseAccess(DatabaseService<T> databaseService) {
|
||||
this.databaseService = databaseService;
|
||||
}
|
||||
|
||||
private DatabaseService<T> databaseService;
|
||||
|
||||
public DatabaseService<T> getDatabaseService() {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package eu.eudat.data.dao.databaselayer.context;
|
||||
|
||||
import eu.eudat.queryable.QueryableList;
|
||||
import eu.eudat.queryable.hibernatequeryablelist.QueryableHibernateList;
|
||||
import eu.eudat.queryable.jpa.hibernatequeryablelist.QueryableHibernateList;
|
||||
import eu.eudat.queryable.queryableentity.DataEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
|
|
@ -25,7 +25,7 @@ public class DatabaseService<T extends DataEntity> {
|
|||
}
|
||||
|
||||
public QueryableList<T> getQueryable(Set<String> hints, Class<T> tClass) {
|
||||
return this.databaseCtx.getQueryable(tClass).setHints(hints);
|
||||
return this.databaseCtx.getQueryable(tClass);
|
||||
}
|
||||
|
||||
public T createOrUpdate(T item, Class<T> tClass) {
|
||||
|
|
|
@ -18,7 +18,7 @@ public class ContentDaoImpl extends DatabaseAccess<Content> implements ContentDa
|
|||
|
||||
@Autowired
|
||||
public ContentDaoImpl(DatabaseService<Content> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -22,7 +22,7 @@ public class DMPDaoImpl extends DatabaseAccess<DMP> implements DMPDao {
|
|||
|
||||
@Autowired
|
||||
public DMPDaoImpl(DatabaseService<DMP> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -19,7 +19,7 @@ public class DMPProfileDaoImpl extends DatabaseAccess<DMPProfile> implements DMP
|
|||
|
||||
@Autowired
|
||||
public DMPProfileDaoImpl(DatabaseService<DMPProfile> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public class DataRepositoryDaoImpl extends DatabaseAccess<DataRepository> implem
|
|||
|
||||
@Autowired
|
||||
public DataRepositoryDaoImpl(DatabaseService<DataRepository> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -8,6 +8,7 @@ import eu.eudat.data.entities.UserInfo;
|
|||
import eu.eudat.queryable.QueryableList;
|
||||
import eu.eudat.queryable.types.FieldSelectionType;
|
||||
import eu.eudat.queryable.types.SelectionField;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -17,8 +18,9 @@ import java.util.concurrent.CompletableFuture;
|
|||
@Component("datasetDao")
|
||||
public class DatasetDaoImpl extends DatabaseAccess<Dataset> implements DatasetDao {
|
||||
|
||||
@Autowired
|
||||
public DatasetDaoImpl(DatabaseService<Dataset> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
package eu.eudat.data.dao.entities;
|
||||
|
||||
import eu.eudat.data.dao.DatabaseAccessLayer;
|
||||
import eu.eudat.data.entities.DatasetExternalDataset;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Created by ikalyvas on 5/22/2018.
|
||||
*/
|
||||
public interface DatasetExternalDatasetDao extends DatabaseAccessLayer<DatasetExternalDataset, UUID> {
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
package eu.eudat.data.dao.entities;
|
||||
|
||||
import eu.eudat.data.dao.DatabaseAccess;
|
||||
import eu.eudat.data.dao.databaselayer.service.DatabaseService;
|
||||
import eu.eudat.data.entities.DatasetExternalDataset;
|
||||
import eu.eudat.data.entities.DatasetProfile;
|
||||
import eu.eudat.queryable.QueryableList;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
/**
|
||||
* Created by ikalyvas on 5/22/2018.
|
||||
*/
|
||||
@Component("datasetExternalDatasetDao")
|
||||
public class DatasetExternalDatasetDaoImpl extends DatabaseAccess<DatasetExternalDataset> implements DatasetExternalDatasetDao {
|
||||
|
||||
@Autowired
|
||||
public DatasetExternalDatasetDaoImpl(DatabaseService<DatasetExternalDataset> databaseService) {
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetExternalDataset createOrUpdate(DatasetExternalDataset item) {
|
||||
return this.getDatabaseService().createOrUpdate(item,DatasetExternalDataset.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<DatasetExternalDataset> createOrUpdateAsync(DatasetExternalDataset item) {
|
||||
return CompletableFuture.supplyAsync(() -> this.createOrUpdate(item));
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetExternalDataset find(UUID id) {
|
||||
return getDatabaseService().getQueryable(DatasetExternalDataset.class).where((builder, root) -> builder.equal(root.get("id"), id)).getSingle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetExternalDataset find(UUID id, String hint) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void delete(DatasetExternalDataset item) {
|
||||
this.getDatabaseService().delete(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<DatasetExternalDataset> asQueryable() {
|
||||
return this.getDatabaseService().getQueryable(DatasetExternalDataset.class);
|
||||
}
|
||||
}
|
|
@ -16,7 +16,7 @@ public class DatasetProfileDaoImpl extends DatabaseAccess<DatasetProfile> implem
|
|||
|
||||
@Autowired
|
||||
public DatasetProfileDaoImpl(DatabaseService<DatasetProfile> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
package eu.eudat.data.dao.entities;
|
||||
|
||||
import eu.eudat.data.dao.DatabaseAccessLayer;
|
||||
import eu.eudat.data.entities.DatasetProfile;
|
||||
import eu.eudat.data.entities.DatasetService;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Created by ikalyvas on 5/22/2018.
|
||||
*/
|
||||
public interface DatasetServiceDao extends DatabaseAccessLayer<DatasetService, UUID> {
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
package eu.eudat.data.dao.entities;
|
||||
|
||||
import eu.eudat.data.dao.DatabaseAccess;
|
||||
import eu.eudat.data.dao.databaselayer.service.DatabaseService;
|
||||
import eu.eudat.data.entities.DatasetExternalDataset;
|
||||
import eu.eudat.data.entities.DatasetProfile;
|
||||
import eu.eudat.data.entities.DatasetService;
|
||||
import eu.eudat.queryable.QueryableList;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
/**
|
||||
* Created by ikalyvas on 5/22/2018.
|
||||
*/
|
||||
@Component("datasetServiceDao")
|
||||
public class DatasetServiceDaoImpl extends DatabaseAccess<DatasetService> implements DatasetServiceDao {
|
||||
|
||||
@Autowired
|
||||
public DatasetServiceDaoImpl(DatabaseService<DatasetService> databaseService) {
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetService createOrUpdate(DatasetService item) {
|
||||
return this.getDatabaseService().createOrUpdate(item, DatasetService.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<DatasetService> createOrUpdateAsync(DatasetService item) {
|
||||
return CompletableFuture.supplyAsync(() -> this.createOrUpdate(item));
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetService find(UUID id) {
|
||||
return getDatabaseService().getQueryable(DatasetService.class).where((builder, root) -> builder.equal(root.get("id"), id)).getSingle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetService find(UUID id, String hint) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(DatasetService item) {
|
||||
this.getDatabaseService().delete(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<DatasetService> asQueryable() {
|
||||
return this.getDatabaseService().getQueryable(DatasetService.class);
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@ public class ExternalDatasetDaoImpl extends DatabaseAccess<ExternalDataset> impl
|
|||
|
||||
@Autowired
|
||||
public ExternalDatasetDaoImpl(DatabaseService<ExternalDataset> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -17,7 +17,7 @@ public class InvitationDaoImpl extends DatabaseAccess<Invitation> implements Inv
|
|||
|
||||
@Autowired
|
||||
public InvitationDaoImpl(DatabaseService<Invitation> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public class OrganisationDaoImpl extends DatabaseAccess<Organisation> implements
|
|||
|
||||
@Autowired
|
||||
public OrganisationDaoImpl(DatabaseService<Organisation> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -9,6 +9,7 @@ import eu.eudat.queryable.QueryableList;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.persistence.criteria.JoinType;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
|
@ -17,7 +18,7 @@ public class ProjectDaoImpl extends DatabaseAccess<Project> implements ProjectDa
|
|||
|
||||
@Autowired
|
||||
public ProjectDaoImpl(DatabaseService<Project> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -56,7 +57,7 @@ public class ProjectDaoImpl extends DatabaseAccess<Project> implements ProjectDa
|
|||
}
|
||||
|
||||
public QueryableList<Project> getAuthenticated(QueryableList<Project> query, UserInfo principal) {
|
||||
query.where((builder, root) -> builder.or(builder.equal(root.get("creationUser"), principal), builder.isMember(principal, root.join("dmps").get("users")))).distinct();
|
||||
query.where((builder, root) -> builder.or(builder.equal(root.get("creationUser"), principal), builder.isMember(principal, root.join("dmps", JoinType.LEFT).get("users")))).distinct();
|
||||
return query;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ public class RegistryDaoImpl extends DatabaseAccess<Registry> implements Registr
|
|||
|
||||
@Autowired
|
||||
public RegistryDaoImpl(DatabaseService<Registry> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public class ResearcherDaoImpl extends DatabaseAccess<Researcher> implements Res
|
|||
|
||||
@Autowired
|
||||
public ResearcherDaoImpl(DatabaseService<Researcher> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public class ServiceDaoImpl extends DatabaseAccess<Service> implements ServiceDa
|
|||
|
||||
@Autowired
|
||||
public ServiceDaoImpl(DatabaseService<Service> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -18,7 +18,7 @@ public class UserDmpDaoImpl extends DatabaseAccess<UserDMP> implements UserDmpDa
|
|||
|
||||
@Autowired
|
||||
public UserDmpDaoImpl(DatabaseService<UserDMP> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public class UserInfoDaoImpl extends DatabaseAccess<UserInfo> implements UserInf
|
|||
|
||||
@Autowired
|
||||
public UserInfoDaoImpl(DatabaseService<UserInfo> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -19,7 +19,7 @@ public class UserRoleDaoImpl extends DatabaseAccess<UserRole> implements UserRol
|
|||
|
||||
@Autowired
|
||||
public UserRoleDaoImpl(DatabaseService<UserRole> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public class CredentialDaoImpl extends DatabaseAccess<Credential> implements Cre
|
|||
|
||||
@Autowired
|
||||
public CredentialDaoImpl(DatabaseService<Credential> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public class UserTokenDaoImpl extends DatabaseAccess<UserToken> implements UserT
|
|||
|
||||
@Autowired
|
||||
public UserTokenDaoImpl(DatabaseService<UserToken> databaseService) {
|
||||
this.setDatabaseService(databaseService);
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -38,12 +38,8 @@ public class DataRepository implements Serializable, DataEntity<DataRepository,U
|
|||
private String definition;
|
||||
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinTable(name = "\"DatasetDataRepository\"",
|
||||
joinColumns = {@JoinColumn(name = "\"DataRepository\"", referencedColumnName = "\"ID\"")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")}
|
||||
)
|
||||
private Set<Dataset> datasets;
|
||||
@OneToMany(mappedBy = "dataRepository", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private Set<DatasetDataRepository> datasetDataRepositories;
|
||||
|
||||
|
||||
@Column(name = "\"Status\"", nullable = false)
|
||||
|
@ -134,12 +130,12 @@ public class DataRepository implements Serializable, DataEntity<DataRepository,U
|
|||
this.definition = definition;
|
||||
}
|
||||
|
||||
public Set<Dataset> getDatasets() {
|
||||
return datasets;
|
||||
public Set<DatasetDataRepository> getDatasetDataRepositories() {
|
||||
return datasetDataRepositories;
|
||||
}
|
||||
|
||||
public void setDatasets(Set<Dataset> datasets) {
|
||||
this.datasets = datasets;
|
||||
public void setDatasetDataRepositories(Set<DatasetDataRepository> datasetDataRepositories) {
|
||||
this.datasetDataRepositories = datasetDataRepositories;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -7,18 +7,19 @@ import org.hibernate.annotations.Type;
|
|||
|
||||
import javax.persistence.*;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Entity
|
||||
@Table(name = "\"Dataset\"")
|
||||
@NamedEntityGraphs({
|
||||
@NamedEntityGraph(
|
||||
name = "datasetListingModel",
|
||||
attributeNodes = {@NamedAttributeNode("services"), @NamedAttributeNode("dataRepositories"), @NamedAttributeNode("externalDatasets"), @NamedAttributeNode("registries"),
|
||||
attributeNodes = {@NamedAttributeNode("services"), @NamedAttributeNode("datasetDataRepositories"), @NamedAttributeNode("datasetExternalDatasets"), @NamedAttributeNode("registries"),
|
||||
@NamedAttributeNode(value = "dmp", subgraph = "dmp"), @NamedAttributeNode("profile"), @NamedAttributeNode("creator")},
|
||||
subgraphs = @NamedSubgraph(name = "dmp", attributeNodes = {@NamedAttributeNode("creator"), @NamedAttributeNode("users")})),
|
||||
@NamedEntityGraph(
|
||||
name = "datasetWizardModel",
|
||||
attributeNodes = {@NamedAttributeNode("services"), @NamedAttributeNode("dataRepositories"), @NamedAttributeNode("externalDatasets"), @NamedAttributeNode("registries"),
|
||||
attributeNodes = {@NamedAttributeNode("services"), @NamedAttributeNode("datasetDataRepositories"), @NamedAttributeNode("datasetExternalDatasets"), @NamedAttributeNode("registries"),
|
||||
@NamedAttributeNode("dmp"), @NamedAttributeNode("profile"), @NamedAttributeNode("creator")}),
|
||||
@NamedEntityGraph(
|
||||
name = "datasetRecentActivity",
|
||||
|
@ -91,14 +92,6 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|||
@Column(name = "\"Reference\"", columnDefinition = "xml", nullable = true)
|
||||
private String reference;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinTable(name = "\"DatasetDataRepository\"",
|
||||
joinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "\"DataRepository\"", referencedColumnName = "\"ID\"")}
|
||||
)
|
||||
private Set<DataRepository> dataRepositories;
|
||||
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinTable(name = "\"DatasetRegistry\"",
|
||||
joinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")},
|
||||
|
@ -107,19 +100,15 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|||
private Set<Registry> registries;
|
||||
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinTable(name = "\"DatasetService\"",
|
||||
joinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "\"Service\"", referencedColumnName = "\"ID\"")}
|
||||
)
|
||||
private Set<Service> services;
|
||||
@OneToMany(mappedBy = "dataset", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private Set<DatasetDataRepository> datasetDataRepositories;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinTable(name = "\"DatasetExternalDataset\"",
|
||||
joinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "\"ExternalDataset\"", referencedColumnName = "\"Id\"")}
|
||||
)
|
||||
private Set<ExternalDataset> externalDatasets;
|
||||
|
||||
@OneToMany(mappedBy = "dataset", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private Set<DatasetService> services;
|
||||
|
||||
@OneToMany(mappedBy = "dataset", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private Set<DatasetExternalDataset> datasetExternalDatasets;
|
||||
|
||||
|
||||
@Column(name = "\"Status\"", nullable = false)
|
||||
|
@ -198,17 +187,14 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|||
this.registries = registries;
|
||||
}
|
||||
|
||||
|
||||
public Set<Service> getServices() {
|
||||
public Set<DatasetService> getServices() {
|
||||
return services;
|
||||
}
|
||||
|
||||
|
||||
public void setServices(Set<Service> services) {
|
||||
public void setServices(Set<DatasetService> services) {
|
||||
this.services = services;
|
||||
}
|
||||
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
@ -269,16 +255,14 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|||
}
|
||||
|
||||
|
||||
public Set<DataRepository> getDataRepositories() {
|
||||
return dataRepositories;
|
||||
public Set<DatasetDataRepository> getDatasetDataRepositories() {
|
||||
return datasetDataRepositories;
|
||||
}
|
||||
|
||||
|
||||
public void setDataRepositories(Set<DataRepository> dataRepositories) {
|
||||
this.dataRepositories = dataRepositories;
|
||||
public void setDatasetDataRepositories(Set<DatasetDataRepository> datasetDataRepositories) {
|
||||
this.datasetDataRepositories = datasetDataRepositories;
|
||||
}
|
||||
|
||||
|
||||
public String getReference() {
|
||||
return reference;
|
||||
}
|
||||
|
@ -288,12 +272,12 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|||
this.reference = reference;
|
||||
}
|
||||
|
||||
public Set<ExternalDataset> getExternalDatasets() {
|
||||
return externalDatasets;
|
||||
public Set<DatasetExternalDataset> getDatasetExternalDatasets() {
|
||||
return datasetExternalDatasets;
|
||||
}
|
||||
|
||||
public void setExternalDatasets(Set<ExternalDataset> externalDatasets) {
|
||||
this.externalDatasets = externalDatasets;
|
||||
public void setDatasetExternalDatasets(Set<DatasetExternalDataset> datasetExternalDatasets) {
|
||||
this.datasetExternalDatasets = datasetExternalDatasets;
|
||||
}
|
||||
|
||||
public boolean isPublic() {
|
||||
|
@ -307,11 +291,19 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|||
@Override
|
||||
public void update(Dataset entity) {
|
||||
this.setRegistries(entity.getRegistries());
|
||||
this.setDataRepositories(entity.getDataRepositories());
|
||||
this.getDatasetDataRepositories().removeAll(this.getDatasetDataRepositories());
|
||||
this.getDatasetDataRepositories().addAll(entity.getDatasetDataRepositories().stream().map(item->{
|
||||
item.setDataset(this);
|
||||
return item;
|
||||
}).collect(Collectors.toList()));
|
||||
this.setDescription(entity.getDescription());
|
||||
this.setLabel(entity.getLabel());
|
||||
this.setProperties(entity.getProperties());
|
||||
this.setExternalDatasets(entity.getExternalDatasets());
|
||||
this.getDatasetExternalDatasets().removeAll(this.getDatasetExternalDatasets());
|
||||
this.getDatasetExternalDatasets().addAll(entity.getDatasetExternalDatasets().stream().map(item -> {
|
||||
item.setDataset(this);
|
||||
return item;
|
||||
}).collect(Collectors.toList()));
|
||||
this.setStatus(entity.getStatus());
|
||||
this.setProfile(entity.getProfile());
|
||||
this.setModified(new Date());
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
package eu.eudat.data.entities;
|
||||
|
||||
import eu.eudat.queryable.queryableentity.DataEntity;
|
||||
import org.hibernate.annotations.GenericGenerator;
|
||||
import org.hibernate.annotations.Type;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Created by ikalyvas on 5/22/2018.
|
||||
*/
|
||||
|
||||
@Entity
|
||||
@Table(name = "\"DatasetDataRepository\"")
|
||||
public class DatasetDataRepository implements DataEntity<DatasetDataRepository,UUID> {
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@GenericGenerator(name = "uuid2", strategy = "uuid2")
|
||||
@Column(name = "\"ID\"", updatable = false, nullable = false, columnDefinition = "BINARY(16)")
|
||||
private UUID id;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "\"Dataset\"", nullable = false)
|
||||
private Dataset dataset;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "\"DataRepository\"", nullable = false)
|
||||
private DataRepository dataRepository;
|
||||
|
||||
@Column(name = "\"Role\"")
|
||||
private Integer role;
|
||||
|
||||
|
||||
@Column(name = "\"Data\"")
|
||||
private String data;
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(UUID id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Dataset getDataset() {
|
||||
return dataset;
|
||||
}
|
||||
|
||||
public void setDataset(Dataset dataset) {
|
||||
this.dataset = dataset;
|
||||
}
|
||||
|
||||
public DataRepository getDataRepository() {
|
||||
return dataRepository;
|
||||
}
|
||||
|
||||
public void setDataRepository(DataRepository dataRepository) {
|
||||
this.dataRepository = dataRepository;
|
||||
}
|
||||
|
||||
public Integer getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public void setRole(Integer role) {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
public String getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(String data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(DatasetDataRepository entity) {
|
||||
this.dataset = entity.getDataset();
|
||||
this.dataRepository = entity.getDataRepository();
|
||||
this.role = entity.getRole();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getKeys() {
|
||||
return this.id;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package eu.eudat.data.entities;
|
||||
|
||||
import eu.eudat.queryable.queryableentity.DataEntity;
|
||||
import org.hibernate.annotations.GenericGenerator;
|
||||
import org.hibernate.annotations.Type;
|
||||
|
||||
|
@ -9,7 +10,7 @@ import java.util.UUID;
|
|||
|
||||
@Entity
|
||||
@Table(name = "\"DatasetExternalDataset\"")
|
||||
public class DatasetExternalDataset {
|
||||
public class DatasetExternalDataset implements DataEntity<DatasetExternalDataset,UUID> {
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
|
@ -18,17 +19,21 @@ public class DatasetExternalDataset {
|
|||
private UUID id;
|
||||
|
||||
|
||||
@Type(type = "org.hibernate.type.PostgresUUIDType") //DEPWARN dependency to Hibernate and PostgreSQL
|
||||
@Column(name = "\"Dataset\"", nullable = false)
|
||||
private UUID dataset;
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "\"Dataset\"", nullable = false)
|
||||
private Dataset dataset;
|
||||
|
||||
@Type(type = "org.hibernate.type.PostgresUUIDType") //DEPWARN dependency to Hibernate and PostgreSQL
|
||||
@Column(name = "\"ExternalDataset\"", nullable = false)
|
||||
private UUID externalDataset;
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "\"ExternalDataset\"", nullable = false)
|
||||
private ExternalDataset externalDataset;
|
||||
|
||||
@Column(name = "\"Role\"")
|
||||
private Integer role;
|
||||
|
||||
@Column(name = "\"Data\"")
|
||||
private String data;
|
||||
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
@ -37,19 +42,19 @@ public class DatasetExternalDataset {
|
|||
this.id = id;
|
||||
}
|
||||
|
||||
public UUID getDataset() {
|
||||
public Dataset getDataset() {
|
||||
return dataset;
|
||||
}
|
||||
|
||||
public void setDataset(UUID dataset) {
|
||||
public void setDataset(Dataset dataset) {
|
||||
this.dataset = dataset;
|
||||
}
|
||||
|
||||
public UUID getExternalDataset() {
|
||||
public ExternalDataset getExternalDataset() {
|
||||
return externalDataset;
|
||||
}
|
||||
|
||||
public void setExternalDataset(UUID externalDataset) {
|
||||
public void setExternalDataset(ExternalDataset externalDataset) {
|
||||
this.externalDataset = externalDataset;
|
||||
}
|
||||
|
||||
|
@ -60,4 +65,24 @@ public class DatasetExternalDataset {
|
|||
public void setRole(Integer role) {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
public String getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(String data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(DatasetExternalDataset entity) {
|
||||
this.dataset = entity.getDataset();
|
||||
this.externalDataset = entity.getExternalDataset();
|
||||
this.role = entity.getRole();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getKeys() {
|
||||
return this.id;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,9 @@ public class DatasetRegistry {
|
|||
@Column(name = "\"Role\"")
|
||||
private Integer role;
|
||||
|
||||
@Column(name = "\"Data\"")
|
||||
private String data;
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
@ -63,5 +66,11 @@ public class DatasetRegistry {
|
|||
this.role = role;
|
||||
}
|
||||
|
||||
public String getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(String data) {
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package eu.eudat.data.entities;
|
||||
|
||||
|
||||
import eu.eudat.queryable.queryableentity.DataEntity;
|
||||
import org.hibernate.annotations.GenericGenerator;
|
||||
import org.hibernate.annotations.Type;
|
||||
|
||||
|
@ -11,7 +12,7 @@ import java.util.UUID;
|
|||
|
||||
@Entity
|
||||
@Table(name = "\"DatasetService\"")
|
||||
public class DatasetService {
|
||||
public class DatasetService implements DataEntity<DatasetService, UUID> {
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
|
@ -20,17 +21,21 @@ public class DatasetService {
|
|||
private UUID id;
|
||||
|
||||
|
||||
@Type(type = "org.hibernate.type.PostgresUUIDType") //DEPWARN dependency to Hibernate and PostgreSQL
|
||||
@Column(name = "\"Dataset\"", nullable = false)
|
||||
private UUID dataset;
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "\"Dataset\"", nullable = false)
|
||||
private Dataset dataset;
|
||||
|
||||
@Type(type = "org.hibernate.type.PostgresUUIDType") //DEPWARN dependency to Hibernate and PostgreSQL
|
||||
@Column(name = "\"Service\"", nullable = false)
|
||||
private UUID service;
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "\"Service\"", nullable = false)
|
||||
private Service service;
|
||||
|
||||
@Column(name = "\"Role\"")
|
||||
private Integer role;
|
||||
|
||||
@Column(name = "\"Data\"")
|
||||
private String data;
|
||||
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
@ -39,19 +44,19 @@ public class DatasetService {
|
|||
this.id = id;
|
||||
}
|
||||
|
||||
public UUID getDataset() {
|
||||
public Dataset getDataset() {
|
||||
return dataset;
|
||||
}
|
||||
|
||||
public void setDataset(UUID dataset) {
|
||||
public void setDataset(Dataset dataset) {
|
||||
this.dataset = dataset;
|
||||
}
|
||||
|
||||
public UUID getService() {
|
||||
public Service getService() {
|
||||
return service;
|
||||
}
|
||||
|
||||
public void setService(UUID service) {
|
||||
public void setService(Service service) {
|
||||
this.service = service;
|
||||
}
|
||||
|
||||
|
@ -63,5 +68,23 @@ public class DatasetService {
|
|||
this.role = role;
|
||||
}
|
||||
|
||||
public String getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(String data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(DatasetService entity) {
|
||||
this.dataset = entity.getDataset();
|
||||
this.service = entity.getService();
|
||||
this.role = entity.getRole();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getKeys() {
|
||||
return this.id;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,12 +34,8 @@ public class ExternalDataset implements DataEntity<ExternalDataset,UUID> {
|
|||
@Column(name = "\"Modified\"", nullable = false)
|
||||
private Date modified;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinTable(name = "\"DatasetExternalDataset\"",
|
||||
joinColumns = {@JoinColumn(name = "\"ExternalDataset\"", referencedColumnName = "\"Id\"")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")}
|
||||
)
|
||||
private Set<Dataset> datasets;
|
||||
@OneToMany(mappedBy = "externalDataset", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private Set<DatasetExternalDataset> datasets;
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
|
@ -89,11 +85,11 @@ public class ExternalDataset implements DataEntity<ExternalDataset,UUID> {
|
|||
this.modified = modified;
|
||||
}
|
||||
|
||||
public Set<Dataset> getDatasets() {
|
||||
public Set<DatasetExternalDataset> getDatasets() {
|
||||
return datasets;
|
||||
}
|
||||
|
||||
public void setDatasets(Set<Dataset> datasets) {
|
||||
public void setDatasets(Set<DatasetExternalDataset> datasets) {
|
||||
this.datasets = datasets;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,12 +39,8 @@ public class Service implements DataEntity<Service, UUID> {
|
|||
private String definition;
|
||||
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@JoinTable(name = "\"DatasetService\"",
|
||||
joinColumns = {@JoinColumn(name = "\"Service\"", referencedColumnName = "\"ID\"")},
|
||||
inverseJoinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")}
|
||||
)
|
||||
private Set<Dataset> datasets;
|
||||
@OneToMany(mappedBy = "service", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private Set<DatasetService> services;
|
||||
|
||||
|
||||
@Column(name = "\"Status\"", nullable = false)
|
||||
|
@ -136,15 +132,14 @@ public class Service implements DataEntity<Service, UUID> {
|
|||
this.definition = definition;
|
||||
}
|
||||
|
||||
public Set<Dataset> getDatasets() {
|
||||
return datasets;
|
||||
public Set<DatasetService> getServices() {
|
||||
return services;
|
||||
}
|
||||
|
||||
public void setDatasets(Set<Dataset> datasets) {
|
||||
this.datasets = datasets;
|
||||
public void setServices(Set<DatasetService> services) {
|
||||
this.services = services;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void update(Service entity) {
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ public class UserInfo implements DataEntity<UserInfo, UUID> {
|
|||
|
||||
|
||||
@Type(type = "eu.eudat.typedefinition.XMLType")
|
||||
@Column(name = "additionalinfo", columnDefinition = "xml", nullable = true)
|
||||
@Column(name = "additionalinfo", nullable = true)
|
||||
private String additionalinfo;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
|
|
|
@ -13,7 +13,7 @@ import java.util.Collection;
|
|||
* Created by ikalyvas on 3/21/2018.
|
||||
*/
|
||||
public class PaginationService {
|
||||
public static <T extends DataEntity> QueryableList<T> applyPaging(QueryableList<T> items, TableQuery tableRequest) throws Exception {
|
||||
public static <T extends DataEntity> QueryableList<T> applyPaging(QueryableList<T> items, TableQuery tableRequest) {
|
||||
if (tableRequest.getOrderings() != null) applyOrder(items, tableRequest);
|
||||
if (tableRequest.getLength() != null) items.take(tableRequest.getLength());
|
||||
if (tableRequest.getOffset() != null) items.skip(tableRequest.getOffset());
|
||||
|
@ -22,7 +22,7 @@ public class PaginationService {
|
|||
return items;
|
||||
}
|
||||
|
||||
public static <T extends DataEntity> void applyOrder(QueryableList<T> items, TableQuery tableRequest) throws Exception {
|
||||
public static <T extends DataEntity> void applyOrder(QueryableList<T> items, TableQuery tableRequest) {
|
||||
ColumnOrderings columnOrderings = tableRequest.getOrderings();
|
||||
for (Ordering ordering : columnOrderings.getFieldOrderings()) {
|
||||
if (ordering.getOrderByType() == Ordering.OrderByType.ASC)
|
||||
|
|
|
@ -11,6 +11,11 @@ public abstract class Query<C extends Criteria<T>, T extends DataEntity> impleme
|
|||
public static class QueryBuilder<C extends Criteria<T>, T extends DataEntity, Q extends Query<C, T>> {
|
||||
private C criteria;
|
||||
private QueryableList<T> query;
|
||||
private Class<Q> tClass;
|
||||
|
||||
public QueryBuilder(Class<Q> tClass) {
|
||||
this.tClass = tClass;
|
||||
}
|
||||
|
||||
public QueryBuilder<C, T, Q> criteria(C criteria) {
|
||||
this.criteria = criteria;
|
||||
|
@ -22,11 +27,18 @@ public abstract class Query<C extends Criteria<T>, T extends DataEntity> impleme
|
|||
return this;
|
||||
}
|
||||
|
||||
public Q build(Class<Q> qClass) throws IllegalAccessException, InstantiationException {
|
||||
Q q = qClass.newInstance();
|
||||
q.setCriteria(criteria);
|
||||
q.setQuery(query);
|
||||
return q;
|
||||
public Q build() {
|
||||
try {
|
||||
Q q = tClass.newInstance();
|
||||
q.setCriteria(criteria);
|
||||
q.setQuery(query);
|
||||
return q;
|
||||
} catch (InstantiationException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,12 +59,12 @@ public abstract class Query<C extends Criteria<T>, T extends DataEntity> impleme
|
|||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<T> collect() throws Exception {
|
||||
public QueryableList<T> collect() {
|
||||
return this.applyCriteria();
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<T> collect(QueryableList<T> repo) throws Exception {
|
||||
public QueryableList<T> collect(QueryableList<T> repo) {
|
||||
this.query = repo;
|
||||
return this.applyCriteria();
|
||||
}
|
||||
|
|
|
@ -8,5 +8,5 @@ import eu.eudat.queryable.queryableentity.DataEntity;
|
|||
* Created by ikalyvas on 3/21/2018.
|
||||
*/
|
||||
public interface TableCriteriaQuery<C extends Criteria<T>, T extends DataEntity> extends CriteriaQuery<C, T> {
|
||||
QueryableList<T> applyPaging(QueryableList<T> items) throws Exception;
|
||||
QueryableList<T> applyPaging(QueryableList<T> items) ;
|
||||
}
|
||||
|
|
|
@ -47,12 +47,12 @@ public abstract class TableQuery<C extends Criteria<T>, T extends DataEntity<T,
|
|||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<T> collect() throws Exception {
|
||||
public QueryableList<T> collect() {
|
||||
return this.applyPaging(super.collect());
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<T> collect(QueryableList<T> repo) throws Exception {
|
||||
public QueryableList<T> collect(QueryableList<T> repo) {
|
||||
return this.applyPaging(super.collect(repo));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ public class ColumnOrderings {
|
|||
this.fields = fields;
|
||||
}
|
||||
|
||||
public Ordering[] getFieldOrderings() throws Exception {
|
||||
public Ordering[] getFieldOrderings() {
|
||||
List<Ordering> orderings = new LinkedList<>();
|
||||
for (String field : fields) {
|
||||
orderings.add(this.orderingFromString(field));
|
||||
|
@ -24,7 +24,7 @@ public class ColumnOrderings {
|
|||
return orderings.toArray(new Ordering[orderings.size()]);
|
||||
}
|
||||
|
||||
private Ordering orderingFromString(String field) throws Exception {
|
||||
private Ordering orderingFromString(String field) {
|
||||
Ordering ordering = new Ordering(field);
|
||||
if (ordering.getFieldName().contains("+"))
|
||||
ordering.fieldName(ordering.getFieldName().replace("+", "")).orderByType(Ordering.OrderByType.ASC);
|
||||
|
|
|
@ -32,7 +32,7 @@ public class DataManagementPlanTableRequest extends TableQuery<DataManagementPla
|
|||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<DMP> applyPaging(QueryableList<DMP> items) throws Exception {
|
||||
public QueryableList<DMP> applyPaging(QueryableList<DMP> items) {
|
||||
return PaginationService.applyPaging(items, this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ public class DataManagementPlanProfileTableRequest extends TableQuery<DataManage
|
|||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<DMPProfile> applyPaging(QueryableList<DMPProfile> items) throws Exception {
|
||||
public QueryableList<DMPProfile> applyPaging(QueryableList<DMPProfile> items) {
|
||||
return PaginationService.applyPaging(items, this);
|
||||
}
|
||||
}
|
||||