Skip to content

Commit 1f50b42

Browse files
author
Hattinger04
committed
first try of new db scheme
1 parent 1ae0446 commit 1f50b42

File tree

9 files changed

+101
-40
lines changed

9 files changed

+101
-40
lines changed

src/main/java/io/github/Hattinger04/course/model/CourseService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.Set;
55

66
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.stereotype.Service;
78

89
import io.github.Hattinger04.course.model.course.Course;
910
import io.github.Hattinger04.course.model.course.CourseRepository;
@@ -13,6 +14,7 @@
1314
import io.github.Hattinger04.course.model.solution.SolutionRepository;
1415
import io.github.Hattinger04.user.model.User;
1516

17+
@Service
1618
public class CourseService {
1719

1820
// TODO: Nothing(!) tested yet
Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,32 @@
11
package io.github.Hattinger04.course.model;
22

3-
import java.util.Set;
4-
3+
import javax.persistence.Column;
54
import javax.persistence.Entity;
5+
import javax.persistence.GeneratedValue;
6+
import javax.persistence.GenerationType;
7+
import javax.persistence.Id;
8+
import javax.persistence.JoinColumn;
9+
import javax.persistence.ManyToOne;
610
import javax.persistence.Table;
711

12+
import io.github.Hattinger04.user.model.User;
813
import lombok.AllArgsConstructor;
914
import lombok.Data;
15+
import lombok.ToString;
1016

11-
//@Entity
12-
//@Table(name = "student")
17+
@Entity
18+
@Table(name = "student")
1319
@Data
1420
@AllArgsConstructor
21+
@ToString
1522
public class Student {
1623

24+
@Id
25+
@GeneratedValue(strategy = GenerationType.IDENTITY)
26+
@Column(name = "student_id")
1727
private Integer id; // TODO: primary_key
1828

19-
private Integer user_id; // TODO: FK
20-
29+
@ManyToOne
30+
@JoinColumn(name="user_id", nullable = false)
31+
private User user; // TODO: FK
2132
}
Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,31 @@
11
package io.github.Hattinger04.course.model;
22

3-
import java.util.Set;
4-
3+
import javax.persistence.Column;
54
import javax.persistence.Entity;
5+
import javax.persistence.GeneratedValue;
6+
import javax.persistence.GenerationType;
7+
import javax.persistence.Id;
8+
import javax.persistence.JoinColumn;
9+
import javax.persistence.ManyToOne;
610
import javax.persistence.Table;
711

12+
import io.github.Hattinger04.user.model.User;
813
import lombok.AllArgsConstructor;
914
import lombok.Data;
15+
import lombok.ToString;
1016

11-
//@Entity
12-
//@Table(name = "teacher")
17+
@Entity
18+
@Table(name = "teacher")
1319
@Data
1420
@AllArgsConstructor
21+
@ToString
1522
public class Teacher {
16-
23+
@Id
24+
@GeneratedValue(strategy = GenerationType.IDENTITY)
25+
@Column(name = "teacher_id")
1726
private Integer id; // TODO: primary_key
1827

19-
private Integer user_id; // TODO: FK
20-
28+
@ManyToOne
29+
@JoinColumn(name="user_id", nullable = false)
30+
private User user; // TODO: FK
2131
}

src/main/java/io/github/Hattinger04/course/model/course/Course.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,36 @@
33
import java.util.Set;
44

55
import javax.persistence.CascadeType;
6+
import javax.persistence.Column;
7+
import javax.persistence.Entity;
8+
import javax.persistence.GeneratedValue;
9+
import javax.persistence.GenerationType;
10+
import javax.persistence.Id;
611
import javax.persistence.JoinColumn;
712
import javax.persistence.JoinTable;
813
import javax.persistence.ManyToMany;
14+
import javax.persistence.Table;
915

1016
import lombok.AllArgsConstructor;
1117
import lombok.Data;
18+
import lombok.ToString;
1219

13-
//@Entity
14-
//@Table(name = "course")
20+
@Entity
21+
@Table(name = "course")
1522
@Data
1623
@AllArgsConstructor
24+
@ToString
1725
public class Course {
1826

1927
public Course(String name) {
2028
this.name = name;
2129
}
2230

23-
// @Id
24-
// @GeneratedValue(strategy = GenerationType.IDENTITY)
25-
// @Column(name = "user_id")
31+
@Id
32+
@GeneratedValue(strategy = GenerationType.IDENTITY)
33+
@Column(name = "user_id")
2634
private Integer id; // TODO: primary_key
27-
35+
@Column(name = "name", unique = true, nullable = false)
2836
private String name; // TODO: unique
2937

3038
/*

src/main/java/io/github/Hattinger04/course/model/course/CourseRepository.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
import org.springframework.data.jpa.repository.JpaRepository;
44
import org.springframework.stereotype.Repository;
55

6-
//@Repository
7-
//public interface CourseRepository extends JpaRepository<Course, Long>{
8-
public interface CourseRepository {
6+
@Repository
7+
public interface CourseRepository extends JpaRepository<Course, Long>{
98
Course findById(int id);
109
Course findByName(String name);
1110
}
Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,43 @@
11
package io.github.Hattinger04.course.model.exercise;
22

3+
import javax.persistence.Column;
34
import javax.persistence.Entity;
5+
import javax.persistence.GeneratedValue;
6+
import javax.persistence.GenerationType;
7+
import javax.persistence.Id;
8+
import javax.persistence.JoinColumn;
9+
import javax.persistence.ManyToOne;
410
import javax.persistence.Table;
511

12+
import io.github.Hattinger04.course.model.course.Course;
613
import lombok.AllArgsConstructor;
714
import lombok.Data;
15+
import lombok.ToString;
816

9-
//@Entity
10-
//@Table(name = "exercise")
17+
@Entity
18+
@Table(name = "exercise")
1119
@Data
1220
@AllArgsConstructor
21+
@ToString
1322
public class Exercise {
1423

15-
public Exercise(Integer course_id, String name) {
16-
this.course_id = course_id;
24+
public Exercise(Course course, String name) {
25+
this.course = course;
1726
this.name = name;
1827
}
1928

29+
@Id
30+
@GeneratedValue(strategy = GenerationType.IDENTITY)
31+
@Column(name = "exercise_id")
2032
private Integer id; // TODO: primary_key
2133

34+
@Column(name = "name", unique = true, nullable = false)
2235
private String name; // TODO: unique
2336

37+
@Column(name = "text", unique = false, nullable = true)
2438
private String text;
2539

26-
private Integer course_id; // TODO: FK
40+
@ManyToOne
41+
@JoinColumn(name="course_id", nullable = false)
42+
private Course course; // TODO: FK
2743
}

src/main/java/io/github/Hattinger04/course/model/exercise/ExerciseRepository.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
import org.springframework.data.repository.query.Param;
66
import org.springframework.stereotype.Repository;
77

8-
//@Repository
9-
//public interface ExerciseRepository extends JpaRepository<Exercise, Long>{
10-
public interface ExerciseRepository {
8+
@Repository
9+
public interface ExerciseRepository extends JpaRepository<Exercise, Long>{
1110
Exercise findById(int id);
1211
// TODO: SQL not tested yet!
1312
@Query(value = "SELECT * FROM EXERCISE e JOIN course c USING (course_id) where course_id=:course_id and c.name=:name", nativeQuery = true)
Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,40 @@
11
package io.github.Hattinger04.course.model.solution;
22

3+
import javax.persistence.Column;
4+
import javax.persistence.Entity;
5+
import javax.persistence.GeneratedValue;
6+
import javax.persistence.GenerationType;
7+
import javax.persistence.Id;
8+
import javax.persistence.JoinColumn;
9+
import javax.persistence.ManyToOne;
10+
import javax.persistence.Table;
11+
12+
import io.github.Hattinger04.course.model.exercise.Exercise;
313
import lombok.AllArgsConstructor;
414
import lombok.Data;
15+
import lombok.ToString;
516

6-
//@Entity
7-
//@Table(name = "Solution")
17+
@Entity
18+
@Table(name = "solution")
819
@Data
920
@AllArgsConstructor
21+
@ToString
1022
public class Solution {
1123

12-
public Solution(Integer exercise_id, String text) {
13-
this.exercise_id = exercise_id;
24+
public Solution(Exercise exercise, String text) {
25+
this.exercise = exercise;
1426
this.text = text;
1527
}
16-
28+
@Id
29+
@GeneratedValue(strategy = GenerationType.IDENTITY)
30+
@Column(name = "solution_id")
1731
private Integer id; // TODO: primary_key
18-
32+
33+
@Column(name = "text", unique = false, nullable = true)
1934
private String text;
2035

21-
private Integer exercise_id; // TODO: FK
36+
@ManyToOne
37+
@JoinColumn(name="exercise_id", nullable = false)
38+
private Exercise exercise; // TODO: FK
2239

2340
}

src/main/java/io/github/Hattinger04/course/model/solution/SolutionRepository.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
import org.springframework.data.repository.query.Param;
66
import org.springframework.stereotype.Repository;
77

8-
//@Repository
9-
//public interface SolutionRepository extends JpaRepository<Solution, Long>{
10-
public interface SolutionRepository {
8+
@Repository
9+
public interface SolutionRepository extends JpaRepository<Solution, Long>{
1110
Solution findById(int id);
1211
// TODO: SQL not tested yet!
1312
@Query(value = "SELECT * FROM SOLUTION s JOIN exercise e USING (exercise_id) where exercise_id=:exercise_id and e.name=:name", nativeQuery = true)

0 commit comments

Comments
 (0)