Skip to content

Commit 04479d2

Browse files
committed
Remove custom implementations with native queries, now Hibernate + JPA works!
1 parent d5b2b61 commit 04479d2

6 files changed

Lines changed: 41 additions & 203 deletions

File tree

src/main/java/org/commonwl/view/workflow/QueuedWorkflowRepository.java

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import java.util.Date;
44
import java.util.List;
55
import java.util.UUID;
6+
import org.commonwl.view.git.GitDetails;
67
import org.springframework.data.jpa.repository.JpaRepository;
78
import org.springframework.data.jpa.repository.Modifying;
89
import org.springframework.data.jpa.repository.Query;
10+
import org.springframework.data.repository.query.Param;
911
import org.springframework.stereotype.Repository;
1012
import org.springframework.transaction.annotation.Transactional;
1113

@@ -16,8 +18,7 @@
1618
* issues with serialization.
1719
*/
1820
@Repository
19-
public interface QueuedWorkflowRepository
20-
extends JpaRepository<QueuedWorkflow, UUID>, QueuedWorkflowRepositoryCustom {
21+
public interface QueuedWorkflowRepository extends JpaRepository<QueuedWorkflow, UUID> {
2122

2223
/**
2324
* Deletes all queued workflows with date retrieved on older or equal to the Date argument passed.
@@ -28,7 +29,8 @@ public interface QueuedWorkflowRepository
2829
@Transactional
2930
@Modifying
3031
@Query(
31-
value = "DELETE FROM queued_workflow q WHERE q.temp_representation ->> 'retrievedOn' <= ?1",
32+
value =
33+
"DELETE FROM queued_workflow q WHERE (q.temp_representation ->> 'retrievedOn')::timestamp <= ?1",
3234
nativeQuery = true)
3335
Integer deleteByTempRepresentation_RetrievedOnLessThanEqual(Date retrievedOn);
3436

@@ -41,7 +43,30 @@ public interface QueuedWorkflowRepository
4143
*/
4244
@Query(
4345
value =
44-
"SELECT q.* FROM queued_workflow q WHERE q.temp_representation ->> 'retrievedOn' <= ?1",
46+
"SELECT q.* FROM queued_workflow q WHERE (q.temp_representation ->> 'retrievedOn')::timestamp <= ?1",
4547
nativeQuery = true)
4648
List<QueuedWorkflow> findByTempRepresentation_RetrievedOnLessThanEqual(Date retrievedOn);
49+
50+
/**
51+
* Finds a queued workflow based on where it was retrieved from.
52+
*
53+
* @param retrievedFrom Details of where the queued workflow is from
54+
* @return The queued workflow
55+
*/
56+
@Query(
57+
"""
58+
SELECT q
59+
FROM QueuedWorkflow q
60+
WHERE q.tempRepresentation.retrievedFrom = :retrievedFrom
61+
""")
62+
QueuedWorkflow findByRetrievedFrom(@Param("retrievedFrom") GitDetails retrievedFrom);
63+
64+
/**
65+
* Deletes a queued workflow based on where it was retrieved from.
66+
*
67+
* @param retrievedFrom Details of where the queued workflow is from
68+
*/
69+
@Transactional
70+
@Modifying
71+
void deleteByTempRepresentation_RetrievedFrom(GitDetails retrievedFrom);
4772
}

src/main/java/org/commonwl/view/workflow/QueuedWorkflowRepositoryCustom.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

src/main/java/org/commonwl/view/workflow/QueuedWorkflowRepositoryImpl.java

Lines changed: 0 additions & 76 deletions
This file was deleted.

src/main/java/org/commonwl/view/workflow/WorkflowRepository.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121

2222
import java.util.List;
2323
import java.util.UUID;
24+
import org.commonwl.view.git.GitDetails;
2425
import org.springframework.data.domain.Page;
2526
import org.springframework.data.domain.Pageable;
2627
import org.springframework.data.jpa.repository.JpaRepository;
2728
import org.springframework.data.jpa.repository.Query;
29+
import org.springframework.data.repository.query.Param;
2830
import org.springframework.stereotype.Repository;
2931

3032
/**
@@ -34,8 +36,7 @@
3436
* href="https://docs.spring.io/spring-data/jpa/docs/current/reference/html/">...</a>
3537
*/
3638
@Repository
37-
public interface WorkflowRepository
38-
extends JpaRepository<Workflow, UUID>, WorkflowRepositoryCustom {
39+
public interface WorkflowRepository extends JpaRepository<Workflow, UUID> {
3940

4041
/**
4142
* Finds a workflow model in the database based on a commit ID and path
@@ -59,6 +60,15 @@ public interface WorkflowRepository
5960
@Query("SELECT w FROM Workflow w WHERE w.lastCommit = ?1")
6061
List<Workflow> findByCommit(String commitId);
6162

63+
/**
64+
* Finds a workflow model in the database based on where it was retrieved from
65+
*
66+
* @param retrievedFrom Details of where the workflow is from
67+
* @return The workflow model
68+
*/
69+
@Query("SELECT w FROM Workflow w WHERE w.retrievedFrom = :retrievedFrom")
70+
Workflow findByRetrievedFrom(@Param("retrievedFrom") GitDetails retrievedFrom);
71+
6272
/**
6373
* Paged request to get workflows of a specific status
6474
*

src/main/java/org/commonwl/view/workflow/WorkflowRepositoryCustom.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/main/java/org/commonwl/view/workflow/WorkflowRepositoryImpl.java

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)