Spring/Spring Boot

JPA marge, find, remove

hoonssss 2023. 9. 20. 15:09
반응형
SMALL
package com.in28minutes.springboot.learnjapandhibernate.course;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;

@Entity
public class Course {
	
	@Id
	private long id;
	
	private String name;
	
	private String author;
	
	public Course() {
		
	}
	
	@Override
	public String toString() {
		return "Course [id=" + id + ", name=" + name + ", author=" + author + "]";
	}

	public long getId() {
		return id;
	}

	public String getName() {
		return name;
	}

	public String getAuthor() {
		return author;
	}
	
	public void setId(long id) {
		this.id = id;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public Course(long id, String name, String author) {
		super();
		this.id = id;
		this.name = name;
		this.author = author;
	}
}
package com.in28minutes.springboot.learnjapandhibernate.course.jpa;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.in28minutes.springboot.learnjapandhibernate.course.Course;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.transaction.Transactional;

@Repository
@Transactional
public class CourseJpaRepository {
	
	@PersistenceContext //@Autowired
	private EntityManager entityManager;
	
	public void insert(Course course) {
		entityManager.merge(course);
	}
	
	public Course findById(long id) {
		return entityManager.find(Course.class, id);
	}
	
	public void deleteByid(long id) {
		Course course = entityManager.find(Course.class, id);
		entityManager.remove(course);
	}
}
package com.in28minutes.springboot.learnjapandhibernate.course;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import com.in28minutes.springboot.learnjapandhibernate.course.Course;
import com.in28minutes.springboot.learnjapandhibernate.course.jpa.CourseJpaRepository;

@Component
public class CourseCommandLineRunner implements CommandLineRunner{

//	@Autowired
//	private CourseJdbcRepository repository;
	
	@Autowired
	private CourseJpaRepository repository;
		
	@Override
	public void run(String... args) throws Exception {
		repository.insert(new Course(1, "Learn AWS", "in28minutes"));
		repository.insert(new Course(2, "Learn AWS!", "in28minutes"));
		repository.insert(new Course(3, "Learn AWS!!", "in28minutes"));
		
		repository.deleteByid(1);
		
		System.out.println(repository.findById(2));
		System.out.println(repository.findById(3));
	}
}

Course [id=2, name=Learn AWS!, author=in28minutes]

Course [id=3, name=Learn AWS!!, author=in28minutes]

/learn-jap-and-hibernate/src/main/resources/application.properties

spring.jpa.show-sql=true

Hibernate: select c1_0.id,c1_0.author,c1_0.name from course c1_0 where c1_0.id=?

Hibernate: insert into course (author,name,id) values (?,?,?)

Hibernate: select c1_0.id,c1_0.author,c1_0.name from course c1_0 where c1_0.id=?

Hibernate: insert into course (author,name,id) values (?,?,?)

Hibernate: select c1_0.id,c1_0.author,c1_0.name from course c1_0 where c1_0.id=?

Hibernate: insert into course (author,name,id) values (?,?,?)

Hibernate: select c1_0.id,c1_0.author,c1_0.name from course c1_0 where c1_0.id=?

Hibernate: delete from course where id=?

Hibernate: select c1_0.id,c1_0.author,c1_0.name from course c1_0 where c1_0.id=?

Course [id=2, name=Learn AWS!, author=in28minutes]

Hibernate: select c1_0.id,c1_0.author,c1_0.name from course c1_0 where c1_0.id=?

Course [id=3, name=Learn AWS!!, author=in28minutes]

반응형
LIST

'Spring > Spring Boot' 카테고리의 다른 글

Spring boot @Controller, @ResposeBody  (0) 2023.09.20
Spring Data JPA  (0) 2023.09.20
Spring JDBC 데이터 쿼리  (0) 2023.09.19
h2 삽입, 조회, 삭제  (0) 2023.09.19
h2콘솔 실행하기  (0) 2023.09.19