Repository for Series
parent
9364e43bd2
commit
0be1ad37c0
|
|
@ -25,11 +25,14 @@ import javax.transaction.Transactional;
|
||||||
@RequestScoped
|
@RequestScoped
|
||||||
public class PublicationManager {
|
public class PublicationManager {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private EntityManager entityManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private PublicationRepository publicationRepository;
|
private PublicationRepository publicationRepository;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private EntityManager entityManager;
|
private SeriesRepository seriesRepository;
|
||||||
|
|
||||||
@AuthorizationRequired
|
@AuthorizationRequired
|
||||||
@RequiresPrivilege(ItemPrivileges.EDIT)
|
@RequiresPrivilege(ItemPrivileges.EDIT)
|
||||||
|
|
@ -341,7 +344,7 @@ public class PublicationManager {
|
||||||
volume.setSeries(series);
|
volume.setSeries(series);
|
||||||
volume.setVolumeOfSeries(volumeInSeries);
|
volume.setVolumeOfSeries(volumeInSeries);
|
||||||
publication.addSeries(volume);
|
publication.addSeries(volume);
|
||||||
series.addVolume(volumeInSeries);
|
series.addVolume(volume);
|
||||||
seriesRepository.save(series);
|
seriesRepository.save(series);
|
||||||
publicationRepository.save(publication);
|
publicationRepository.save(publication);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.enterprise.context.RequestScoped;
|
||||||
import javax.persistence.NoResultException;
|
import javax.persistence.NoResultException;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
|
@ -18,6 +19,7 @@ import javax.transaction.Transactional;
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
|
@RequestScoped
|
||||||
public class PublisherRepository
|
public class PublisherRepository
|
||||||
extends AbstractEntityRepository<Long, Publisher> {
|
extends AbstractEntityRepository<Long, Publisher> {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import javax.persistence.Id;
|
||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.JoinTable;
|
import javax.persistence.JoinTable;
|
||||||
import javax.persistence.NamedQueries;
|
import javax.persistence.NamedQueries;
|
||||||
|
import javax.persistence.NamedQuery;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
|
@ -36,7 +37,19 @@ import static org.scientificcms.publications.SciPublicationsConstants.*;
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "SERIES", schema = DB_SCHEMA)
|
@Table(name = "SERIES", schema = DB_SCHEMA)
|
||||||
@Audited
|
@Audited
|
||||||
@NamedQueries({})
|
@NamedQueries({
|
||||||
|
@NamedQuery(
|
||||||
|
name = "Series.findByUuid",
|
||||||
|
query = "SELECT s FROM Series s WHERE s.uuid = :uuid"
|
||||||
|
),
|
||||||
|
@NamedQuery(
|
||||||
|
name = "Series.findByTitle",
|
||||||
|
query = "SELECT DISTINCT s "
|
||||||
|
+ "FROM Series s "
|
||||||
|
+ "JOIN s.title.values t "
|
||||||
|
+ "WHERE lower(t) LIKE CONCAT ('%', :title, '%')"
|
||||||
|
)
|
||||||
|
})
|
||||||
public class Series implements Serializable {
|
public class Series implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package org.scientificcms.publications;
|
||||||
|
|
||||||
|
import org.libreccm.core.AbstractEntityRepository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
import javax.persistence.NoResultException;
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@RequestScoped
|
||||||
|
public class SeriesRepository
|
||||||
|
extends AbstractEntityRepository<Long, Series> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<Series> getEntityClass() {
|
||||||
|
return Series.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIdAttributeName() {
|
||||||
|
return "seriesId";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getIdOfEntity(final Series entity) {
|
||||||
|
return entity.getSeriesId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isNew(final Series entity) {
|
||||||
|
return entity.getSeriesId() == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initNewEntity(final Series entity) {
|
||||||
|
entity.setUuid(UUID.randomUUID().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public Optional<Series> findByUuid(final String uuid) {
|
||||||
|
try {
|
||||||
|
return Optional.of(
|
||||||
|
getEntityManager()
|
||||||
|
.createNamedQuery("Series.findByUuid", Series.class)
|
||||||
|
.setParameter("uuid", uuid)
|
||||||
|
.getSingleResult()
|
||||||
|
);
|
||||||
|
} catch (NoResultException ex) {
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public List<Series> findByTitle(final String title) {
|
||||||
|
return getEntityManager()
|
||||||
|
.createNamedQuery("Series.findByTitle", Series.class)
|
||||||
|
.setParameter("title", title)
|
||||||
|
.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue