Advertisement
Lamukhin

Untitled

Feb 11th, 2025
66
0
6 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.19 KB | Software | 0 0
  1. @Repository
  2. @RequiredArgsConstructor
  3. public class MyProjectRecordsDao {
  4.  
  5.     private final DefaultDSLContext dslContext;
  6.  
  7.     @Transactional
  8.     public List<ProjectWithCountDto> fetchAllProjectsWithCount() {
  9.         return dslContext
  10.                 .select(
  11.                         PROJECTS.PROJECT_NAME,
  12.                         DSL.count(PROJECT_RECORDS.ID)
  13.                 )
  14.                 .from(PROJECTS)
  15.                 .leftJoin(PROJECT_RECORDS)
  16.                 .on(PROJECTS.PROJECT_NAME.eq(PROJECT_RECORDS.PROJECT_NAME))
  17.                 .groupBy(PROJECTS.PROJECT_NAME)
  18.                 .fetchInto(ProjectWithCountDto.class);
  19.     }
  20.  
  21.     @Transactional
  22.     public void saveNewRecord(String projectName, String storedData) {
  23.  
  24.         dslContext.insertInto(PROJECTS)
  25.                 .columns(PROJECTS.PROJECT_NAME)
  26.                 .values(projectName)
  27.                 .onDuplicateKeyIgnore() //ignore insert if the record exists
  28.                 .execute();
  29.  
  30.         dslContext.insertInto(PROJECT_RECORDS)
  31.                 .columns(PROJECT_RECORDS.PROJECT_NAME, PROJECT_RECORDS.STORED_DATA)
  32.                 .values(projectName, storedData)
  33.                 .execute();
  34.     }
  35.  
  36.  
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement