Skip to content

Commit

Permalink
feature #37 - Tag Table
Browse files Browse the repository at this point in the history
Tag 테이블 구현.
ReviewTag 테이블 구현
연관 관계 매핑 등.. 추가 설정 필요
  • Loading branch information
kimaj2001 committed Jul 5, 2023
1 parent 3764073 commit a0f80b1
Show file tree
Hide file tree
Showing 7 changed files with 118 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/main/java/com/codestates/server/ServerApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@SpringBootApplication
@EnableJpaAuditing
public class ServerApplication {

public static void main(String[] args) {
Expand Down
28 changes: 28 additions & 0 deletions src/main/java/com/codestates/server/tag/entity/ReviewTag.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.codestates.server.tag.entity;

import com.codestates.server.review.entity.Review;
import lombok.*;

import javax.persistence.*;

@Entity
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class ReviewTag {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne
@JoinColumn(name = "review_id")
private Review review;

@ManyToOne //(targetEntity = Tag.class, fetch = FetchType.LAZY)
@JoinColumn(name = "tag_id", insertable = false, updatable = false)
private Tag tag;

@Column(name = "tag_id")
private String tagId;
}
15 changes: 15 additions & 0 deletions src/main/java/com/codestates/server/tag/entity/Tag.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.codestates.server.tag.entity;

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
@AllArgsConstructor
@NoArgsConstructor
public class Tag {
@Id
private String id;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.codestates.server.tag.repository;

import com.codestates.server.tag.entity.ReviewTag;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.beans.JavaBean;

@Repository
public interface ReviewTagRepository extends JpaRepository<ReviewTag, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.codestates.server.tag.repository;

import com.codestates.server.tag.entity.Tag;
import org.springframework.data.jpa.repository.JpaRepository;

public interface TagRepository extends JpaRepository<Tag, String> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.codestates.server.tag.service;

import com.codestates.server.review.entity.Review;
import com.codestates.server.tag.entity.ReviewTag;
import com.codestates.server.tag.repository.ReviewTagRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Set;

@Service
public class ReviewTagService {
@Autowired
ReviewTagRepository reviewTagRepository;

@Transactional
public void addReviewTag(Review review, Set<String> tags) {
for (String tag : tags) {
ReviewTag reviewTag = new ReviewTag();
reviewTag.setReview(review);
reviewTag.setTagId(tag);

reviewTagRepository.save(reviewTag);
}
}
}
28 changes: 28 additions & 0 deletions src/main/java/com/codestates/server/utils/DataInitializer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.codestates.server.utils;

import com.codestates.server.tag.entity.Tag;
import com.codestates.server.tag.repository.TagRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

@Component
public class DataInitializer implements CommandLineRunner {

@Autowired
TagRepository tagRepository;

@Override
public void run(String... args) throws Exception {
List<String> tags = Arrays.asList("재미있어요", "감동적이에요", "스릴 넘쳐요", "웃겨요", "눈물나는", "설레는", "몰입도 높은", "예술적인", "생각할 거리가 있는", "인상 깊은");
List<Tag> tagEntities = tags.stream()
.map(Tag::new)
.collect(Collectors.toList());

tagRepository.saveAll(tagEntities);
}
}

0 comments on commit a0f80b1

Please sign in to comment.