Skip to content
This repository has been archived by the owner on Aug 6, 2024. It is now read-only.

Add entity, repository #2

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ repositories {
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation "org.springframework.boot:spring-boot-starter-data-jpa"
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.mysql:mysql-connector-j'
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/com/sscc/capsule/entity/BaseTimeEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.sscc.capsule.entity;

import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import java.time.LocalDateTime;

@MappedSuperclass
@Getter
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {

@CreatedDate
@Column(updatable = false)
private LocalDateTime createdAt;

@LastModifiedDate
private LocalDateTime updatedAt;
}
22 changes: 22 additions & 0 deletions src/main/java/com/sscc/capsule/entity/Category.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.sscc.capsule.entity;

import jakarta.persistence.*;
import lombok.*;

@Entity
@Table
@Getter
@Setter
@RequiredArgsConstructor
@AllArgsConstructor
@Builder
public class Category {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false, length = 30)
private String name;

}
27 changes: 27 additions & 0 deletions src/main/java/com/sscc/capsule/entity/Heart.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.sscc.capsule.entity;

import jakarta.persistence.*;
import lombok.*;

@Entity
@Table
@Getter
@Setter
@RequiredArgsConstructor
@AllArgsConstructor
@Builder
public class Heart {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne
@JoinColumn(nullable = false, name = "user_id")
private User user;

@ManyToOne
@JoinColumn(nullable = false, name = "post_id")
private Post post;

}
40 changes: 40 additions & 0 deletions src/main/java/com/sscc/capsule/entity/Post.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.sscc.capsule.entity;

import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.ColumnDefault;

@Entity
@Table
@Getter
@Setter
@RequiredArgsConstructor
@AllArgsConstructor
@Builder
public class Post extends BaseTimeEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String title;

@Column(nullable = false, columnDefinition = "TEXT")
private String content;

private String file;

@Column(nullable = false)
@ColumnDefault("0")
private Integer hearts;

@ManyToOne
@JoinColumn(nullable = false, name = "user_id")
private User user;

@ManyToOne
@JoinColumn(nullable = false, name = "category_id")
private Category category;

}
36 changes: 36 additions & 0 deletions src/main/java/com/sscc/capsule/entity/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.sscc.capsule.entity;

import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.ColumnDefault;

@Entity
@Table
@Getter
@Setter
@RequiredArgsConstructor
@AllArgsConstructor
@Builder
public class User extends BaseTimeEntity {

@Id
@GeneratedValue(strategy = GenerationType.UUID)
private String id;

@Column(nullable = false, length=64)
private String password;

@Column(nullable = false, length = 50)
private String nickname;

@Column(nullable = false, length = 15)
private String name;

@Column(nullable = false)
private Integer generation; // 기수

@Column(nullable = false, columnDefinition = "TINYINT")
@ColumnDefault("0")
private Integer role;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.sscc.capsule.repository;

import com.sscc.capsule.entity.Category;
import org.springframework.data.jpa.repository.JpaRepository;

public interface CategoryRepository extends JpaRepository<Category, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.sscc.capsule.repository;

import com.sscc.capsule.entity.Heart;
import org.springframework.data.jpa.repository.JpaRepository;

public interface HeartRepository extends JpaRepository<Heart, Long> {
}
7 changes: 7 additions & 0 deletions src/main/java/com/sscc/capsule/repository/PostRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.sscc.capsule.repository;

import com.sscc.capsule.entity.Post;
import org.springframework.data.jpa.repository.JpaRepository;

public interface PostRepository extends JpaRepository<Post, Long> {
}
7 changes: 7 additions & 0 deletions src/main/java/com/sscc/capsule/repository/UserRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.sscc.capsule.repository;

import com.sscc.capsule.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, String> {
}
2 changes: 0 additions & 2 deletions src/main/resources/application.properties

This file was deleted.