Skip to content

Commit 64e7240

Browse files
Moving to single PK column
1 parent c32febf commit 64e7240

4 files changed

Lines changed: 34 additions & 54 deletions

File tree

api/src/main/java/ca/bc/gov/educ/api/pen/replication/model/StudXcrseId.java

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

api/src/main/java/ca/bc/gov/educ/api/pen/replication/model/TraxStudentCourseEntity.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package ca.bc.gov.educ.api.pen.replication.model;
22

3-
import jakarta.persistence.Column;
4-
import jakarta.persistence.EmbeddedId;
5-
import jakarta.persistence.Entity;
6-
import jakarta.persistence.Table;
3+
import jakarta.persistence.*;
74
import lombok.AllArgsConstructor;
85
import lombok.Builder;
96
import lombok.Data;
107
import lombok.NoArgsConstructor;
8+
import org.hibernate.annotations.GenericGenerator;
9+
10+
import java.util.UUID;
1111

1212
@Data
1313
@Builder
@@ -16,9 +16,24 @@
1616
@Entity
1717
@Table(name = "STUD_XCRSE")
1818
public class TraxStudentCourseEntity {
19+
@Id
20+
@GeneratedValue(generator = "UUID")
21+
@GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator", parameters = {
22+
@org.hibernate.annotations.Parameter(name = "uuid_gen_strategy_class", value = "org.hibernate.id.uuid.CustomVersionOneStrategy")})
23+
@Column(name = "STUD_XCRSE_ID", unique = true, updatable = false, columnDefinition = "BINARY(16)")
24+
UUID studXcrseId;
25+
26+
@Column(name = "STUD_NO", nullable = false)
27+
private String studNo;
28+
29+
@Column(name = "CRSE_CODE", nullable = false)
30+
private String courseCode;
31+
32+
@Column(name = "CRSE_LEVEL", nullable = false)
33+
private String courseLevel;
1934

20-
@EmbeddedId
21-
private StudXcrseId studXcrseId;
35+
@Column(name = "CRSE_SESSION", nullable = false)
36+
private String courseSession;
2237

2338
@Column(name = "FINAL_LG")
2439
private String finalLetterGrade;

api/src/main/java/ca/bc/gov/educ/api/pen/replication/service/StudentCourseUpdateService.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import ca.bc.gov.educ.api.pen.replication.exception.PenReplicationAPIRuntimeException;
44
import ca.bc.gov.educ.api.pen.replication.model.Event;
5-
import ca.bc.gov.educ.api.pen.replication.model.StudXcrseId;
65
import ca.bc.gov.educ.api.pen.replication.model.TraxStudentCourseEntity;
76
import ca.bc.gov.educ.api.pen.replication.repository.EventRepository;
87
import ca.bc.gov.educ.api.pen.replication.rest.RestUtils;
@@ -67,10 +66,9 @@ private List<TraxStudentCourseEntity> getStudentCourseEntityList(String studentP
6766
var entityList = new ArrayList<TraxStudentCourseEntity>();
6867
studentCourse.forEach(student -> {
6968
TraxStudentCourseEntity traxStudentCourseEntity = new TraxStudentCourseEntity();
70-
traxStudentCourseEntity.setStudXcrseId(new StudXcrseId());
7169
setCourseCodeAndLevel(traxStudentCourseEntity, student.getCourseID());
72-
traxStudentCourseEntity.getStudXcrseId().setStudNo(StringUtils.trimToNull(studentPEN));
73-
traxStudentCourseEntity.getStudXcrseId().setCourseSession(StringUtils.trimToNull(student.getCourseSession()));
70+
traxStudentCourseEntity.setStudNo(StringUtils.trimToNull(studentPEN));
71+
traxStudentCourseEntity.setCourseSession(StringUtils.trimToNull(student.getCourseSession()));
7472
traxStudentCourseEntity.setFinalLetterGrade(StringUtils.trimToNull(student.getFinalLetterGrade()));
7573
traxStudentCourseEntity.setFinalPercentage(student.getFinalPercent() != null ? student.getFinalPercent().toString() : null);
7674
traxStudentCourseEntity.setNumberOfCredits(student.getCredits() != null ? student.getCredits().toString() : null);
@@ -83,13 +81,13 @@ private List<TraxStudentCourseEntity> getStudentCourseEntityList(String studentP
8381
private void setStudyTypeAndUsedForGradFields(TraxStudentCourseEntity traxStudentCourseEntity, List<TraxStudentCourseEntity> existingTraxStudentCourses){
8482
for(TraxStudentCourseEntity course: existingTraxStudentCourses){
8583
if(course != null) {
86-
String courseCourseCode = StringUtils.trimToNull(course.getStudXcrseId().getCourseCode());
87-
String courseCourseLevel = StringUtils.trimToNull(course.getStudXcrseId().getCourseLevel());
88-
String courseCourseSession = StringUtils.trimToNull(course.getStudXcrseId().getCourseSession());
84+
String courseCourseCode = StringUtils.trimToNull(course.getCourseCode());
85+
String courseCourseLevel = StringUtils.trimToNull(course.getCourseLevel());
86+
String courseCourseSession = StringUtils.trimToNull(course.getCourseSession());
8987

90-
String traxCourseCode = StringUtils.trimToNull(traxStudentCourseEntity.getStudXcrseId().getCourseCode());
91-
String traxCourseLevel = StringUtils.trimToNull(traxStudentCourseEntity.getStudXcrseId().getCourseLevel());
92-
String traxCourseSession = StringUtils.trimToNull(traxStudentCourseEntity.getStudXcrseId().getCourseSession());
88+
String traxCourseCode = StringUtils.trimToNull(traxStudentCourseEntity.getCourseCode());
89+
String traxCourseLevel = StringUtils.trimToNull(traxStudentCourseEntity.getCourseLevel());
90+
String traxCourseSession = StringUtils.trimToNull(traxStudentCourseEntity.getCourseSession());
9391

9492
if (Objects.equals(courseCourseCode, traxCourseCode) &&
9593
Objects.equals(courseCourseLevel, traxCourseLevel) &&
@@ -107,11 +105,11 @@ private void setCourseCodeAndLevel(TraxStudentCourseEntity traxStudentCourseEnti
107105
if (optionalCourse.isPresent()) {
108106
var course = optionalCourse.get();
109107
if(course.getExternalCode().length() > 5) {
110-
traxStudentCourseEntity.getStudXcrseId().setCourseCode(StringUtils.trimToNull(course.getExternalCode().substring(0, 4)));
111-
traxStudentCourseEntity.getStudXcrseId().setCourseLevel(StringUtils.trimToNull(course.getExternalCode().substring(5)));
108+
traxStudentCourseEntity.setCourseCode(StringUtils.trimToNull(course.getExternalCode().substring(0, 4)));
109+
traxStudentCourseEntity.setCourseLevel(StringUtils.trimToNull(course.getExternalCode().substring(5)));
112110
}else{
113-
traxStudentCourseEntity.getStudXcrseId().setCourseCode(StringUtils.trimToNull(course.getExternalCode()));
114-
traxStudentCourseEntity.getStudXcrseId().setCourseLevel(" ");
111+
traxStudentCourseEntity.setCourseCode(StringUtils.trimToNull(course.getExternalCode()));
112+
traxStudentCourseEntity.setCourseLevel(" ");
115113
}
116114
}else{
117115
log.info("No course was found for ID {} :: this should not have happened", courseID);

api/src/main/java/ca/bc/gov/educ/api/pen/replication/service/TraxStudentCourseService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ public void deletePriorAndSaveTraxStudentCourses(final List<TraxStudentCourseEnt
2929
try {
3030
if(!existingCourseList.isEmpty()) {
3131
log.info("Removing existing course list for PEN: {}", existingCourseList.get(0).getStudXcrseId().getStudNo());
32-
this.traxStudentCourseRepository.deleteAllInBatch(existingCourseList);
33-
this.traxStudentCourseRepository.flush();
32+
this.traxStudentCourseRepository.deleteAll(existingCourseList);
3433
}
3534

3635
if(!studentCourseEntityList.isEmpty()) {

0 commit comments

Comments
 (0)