Query for finding a domain by its root category
parent
46bf425f96
commit
6986786f12
|
|
@ -82,21 +82,33 @@ import javax.validation.constraints.NotBlank;
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "CATEGORY_DOMAINS", schema = DB_SCHEMA)
|
@Table(name = "CATEGORY_DOMAINS", schema = DB_SCHEMA)
|
||||||
@NamedQueries({
|
@NamedQueries({
|
||||||
@NamedQuery(name = "Domain.findByKey",
|
@NamedQuery(
|
||||||
query = "SELECT d FROM Domain d WHERE d.domainKey = :key"),
|
name = "Domain.findByKey",
|
||||||
@NamedQuery(name = "Domain.findByUri",
|
query = "SELECT d FROM Domain d WHERE d.domainKey = :key"
|
||||||
query = "SELECT d FROM Domain d WHERE d.uri = :uri"),
|
),
|
||||||
@NamedQuery(name = "Domain.findByUuid",
|
@NamedQuery(
|
||||||
query = "SELECT d FROM Domain d WHERE d.uuid = :uuid"),
|
name = "Domain.findByUri",
|
||||||
@NamedQuery(name = "Domain.findAll",
|
query = "SELECT d FROM Domain d WHERE d.uri = :uri"
|
||||||
query = "SELECT d FROM Domain d ORDER BY d.domainKey"),
|
),
|
||||||
|
@NamedQuery(
|
||||||
|
name = "Domain.findByUuid",
|
||||||
|
query = "SELECT d FROM Domain d WHERE d.uuid = :uuid"
|
||||||
|
),
|
||||||
|
@NamedQuery(
|
||||||
|
name = "Domain.findByRootCategory",
|
||||||
|
query = "SELECT d FROM Domain d WHERE d.root = :root"
|
||||||
|
),
|
||||||
|
@NamedQuery(
|
||||||
|
name = "Domain.findAll",
|
||||||
|
query = "SELECT d FROM Domain d ORDER BY d.domainKey"
|
||||||
|
),
|
||||||
@NamedQuery(
|
@NamedQuery(
|
||||||
name = "Domain.search",
|
name = "Domain.search",
|
||||||
query
|
query
|
||||||
= "SELECT d FROM Domain d "
|
= "SELECT d FROM Domain d "
|
||||||
+ "WHERE d.domainKey LIKE CONCAT (LOWER(:term), '%') "
|
+ "WHERE d.domainKey LIKE CONCAT (LOWER(:term), '%') "
|
||||||
+ "OR d.uri LIKE CONCAT (LOWER(:term), '%') "
|
+ "OR d.uri LIKE CONCAT (LOWER(:term), '%') "
|
||||||
+ "ORDER BY d.domainKey")
|
+ "ORDER BY d.domainKey")
|
||||||
})
|
})
|
||||||
@NamedEntityGraphs({
|
@NamedEntityGraphs({
|
||||||
@NamedEntityGraph(
|
@NamedEntityGraph(
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ public class DomainRepository extends AbstractEntityRepository<Long, Domain> {
|
||||||
public String getIdAttributeName() {
|
public String getIdAttributeName() {
|
||||||
return "objectId";
|
return "objectId";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long getIdOfEntity(final Domain entity) {
|
public Long getIdOfEntity(final Domain entity) {
|
||||||
return entity.getObjectId();
|
return entity.getObjectId();
|
||||||
|
|
@ -87,6 +87,7 @@ public class DomainRepository extends AbstractEntityRepository<Long, Domain> {
|
||||||
* @return The {@code Domain} identified by {@code domainKey} or
|
* @return The {@code Domain} identified by {@code domainKey} or
|
||||||
* {@code null} if there is no such {@code Domain}.
|
* {@code null} if there is no such {@code Domain}.
|
||||||
*/
|
*/
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
public Optional<Domain> findByDomainKey(final String domainKey) {
|
public Optional<Domain> findByDomainKey(final String domainKey) {
|
||||||
final TypedQuery<Domain> query = getEntityManager()
|
final TypedQuery<Domain> query = getEntityManager()
|
||||||
.createNamedQuery("Domain.findByKey", Domain.class);
|
.createNamedQuery("Domain.findByKey", Domain.class);
|
||||||
|
|
@ -111,6 +112,7 @@ public class DomainRepository extends AbstractEntityRepository<Long, Domain> {
|
||||||
* @return The {@code Domain} identified by the provided URI or {@code null}
|
* @return The {@code Domain} identified by the provided URI or {@code null}
|
||||||
* if there is so such {@code Domain}.
|
* if there is so such {@code Domain}.
|
||||||
*/
|
*/
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
public Domain findByUri(final URI uri) {
|
public Domain findByUri(final URI uri) {
|
||||||
final TypedQuery<Domain> query = getEntityManager()
|
final TypedQuery<Domain> query = getEntityManager()
|
||||||
.createNamedQuery("Domain.findByUri", Domain.class);
|
.createNamedQuery("Domain.findByUri", Domain.class);
|
||||||
|
|
@ -126,18 +128,37 @@ public class DomainRepository extends AbstractEntityRepository<Long, Domain> {
|
||||||
*
|
*
|
||||||
* @return An optional either with the found item or empty
|
* @return An optional either with the found item or empty
|
||||||
*/
|
*/
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
public Optional<Domain> findByUuid(final String uuid) {
|
public Optional<Domain> findByUuid(final String uuid) {
|
||||||
final TypedQuery<Domain> query = getEntityManager()
|
|
||||||
.createNamedQuery("Domain.findByUuid", Domain.class);
|
|
||||||
query.setParameter("uuid", uuid);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return Optional.of(query.getSingleResult());
|
return Optional.of(
|
||||||
|
getEntityManager()
|
||||||
|
.createNamedQuery("Domain.findByUuid", Domain.class)
|
||||||
|
.setParameter("uuid", uuid)
|
||||||
|
.getSingleResult()
|
||||||
|
);
|
||||||
} catch (NoResultException ex) {
|
} catch (NoResultException ex) {
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public Optional<Domain> findByRootCategory(final Category rootCategory) {
|
||||||
|
try {
|
||||||
|
return Optional.of(
|
||||||
|
getEntityManager()
|
||||||
|
.createNamedQuery(
|
||||||
|
"Domain.findByRootCategory", Domain.class
|
||||||
|
)
|
||||||
|
.setParameter("root", rootCategory)
|
||||||
|
.getSingleResult()
|
||||||
|
);
|
||||||
|
} catch (NoResultException ex) {
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
public List<Domain> search(final String term) {
|
public List<Domain> search(final String term) {
|
||||||
final TypedQuery<Domain> query = getEntityManager()
|
final TypedQuery<Domain> query = getEntityManager()
|
||||||
.createNamedQuery("Domain.search", Domain.class);
|
.createNamedQuery("Domain.search", Domain.class);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue