묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest에서 오류가 나는데 도와주세요 ㅠㅠ
<MemberService code><MemberRepository code><build.gradle><Error Messeage>어디가 문제일까요?감사합니다~~ㅜㅠㅠㅜㅠ 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
cascadetype.remove와 orpphanRemoval = true
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 제가 강의 복습 겸 혼자 개발을 하다가 궁금한점이 생겨 질문드립니다. cascadetype.remove를 설정하면 부모 엔티티가 삭제되면 자식 엔티티도 삭제되는 것이라고 알고 있습니다. 그래서 cascadetype.remove를 설정하고 부모 객체를 삭제했더니 delete 쿼리가 나가지 않았는데, 여기에 더해 orphanRemoval=True까지 설정해줬더니 delete쿼리가 나가서 부모엔티티와 자식엔티티를 모두 삭제해주었습니다.제가 잘못알고 있는 것인지 아니면 왜 두 가지 모두를 설정해줘야 delete쿼리가 나가는지 궁금해서 여쭤봅니다. @Entity @RequiredArgsConstructor @Setter @Getter public class Restaurant { @Id @GeneratedValue private Long restaurantId; @Column(unique = true) private String name; private mealoralcohol meal_alcohol; private URL url; private int saturdayopentime; private int sundayopentime; private int maxNumOfPeople; private int averagePrice; @OneToMany(mappedBy = "restaurant") private List<MenuRestaurant> menuRestaurants = new ArrayList<>(); } @Entity @RequiredArgsConstructor @Getter @Setter public class MenuRestaurant { @Id @GeneratedValue private Long menuRestaurantid; private mealtype mealtype; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "restaurantId") private Restaurant restaurant; public void setRestaurant(Restaurant restaurant){ this.restaurant = restaurant; restaurant.getMenuRestaurants().add(this); } } @Repository @RequiredArgsConstructor public class RestaurantRepository { private final EntityManager em; public void save(Restaurant restaurant){ em.persist(restaurant); } public Restaurant findById(Long id){ return em.find(Restaurant.class,id); } public void delete(Restaurant restaurant){ Assert.notNull(restaurant,"Entity must not be null!"); if (em.contains(restaurant)){ em.remove(restaurant); } } } @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class RestaurantRepositoryTest { @Autowired RestaurantRepository rr; @Autowired EntityManager em; @Test @Rollback(false) public void testJPQL() throws Exception{ Restaurant res1 = new Restaurant(); res1.setName("res1"); res1.setAveragePrice(10000); res1.setSaturdayopentime(17); res1.setSundayopentime(17); res1.setMaxNumOfPeople(29); res1.setMeal_alcohol(mealoralcohol.Meal); em.persist(res1); MenuRestaurant menures1 = new MenuRestaurant(); em.persist(menures1); menures1.setRestaurant(res1); menures1.setMealtype(mealtype.Korean); // heavyres1 MenuRestaurant menures2 = new MenuRestaurant(); em.persist(menures2); menures2.setRestaurant(res1); menures2.setMealtype(mealtype.heavy); // japaneseres2 MenuRestaurant menures3 = new MenuRestaurant(); em.persist(menures3); menures3.setRestaurant(res2); menures3.setMealtype(mealtype.Japanese); rr.delete(res1); } } 여기서 rr.delete(res1)을 했을 때, Restaurant 클래스의 orphanRemoval=True 설정을 없애면 delete쿼리가 나가지 않습니다.
-
미해결쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
TestEntityApi중 createTestEntity에서 질문있습니다
testService.create(request.getName(), request.getAge());를testService.create(request.name, request.age)로 바꿔도 작동하는데 혹시 차이점이 있나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 오류
[질문 내용]복습 중 테스트 오류가 났는데 이유를 모르겠습니다..entityrepositoryapplication.ymltestbuild.gradletest code하기 전에 main()을 run 했을 때는 제대로 실행되고 h2 웹 콘솔에서도 Member 테이블이 생긴 것을 확인했습니다. 그런데 테스트 코드를 실행하면 아래와 같은 에러가 뜹니다.. 도움 부탁드립니다! 에러
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
리프레시 토큰 사용 관련 문의 건
강사님 안녕하세요 :)강의 관련하여 문의 드립니다. 현재 강의 내용에선 액세스 토큰과 리프레시 토큰을 DTO에 담아 서버에서 클라이언트로 전달하고 있습니다.1) 이 경우, 사용자 또한 네트워크 탭에서 전달되는 토큰을 모두 확인할 수 있는건가요? 보안 문제는 없을지요?2) 프로젝트에 리프레시 토큰을 적용하는 중인데, 위 사항을 감안하고도 DTO로 전달하는 방식으로 진행해도 될지요? 또한 이 경우가 가장 일반적인 경우일지요?3) 만약 액세스 토큰은 쿠키에 담아 웹브라우저가 컨트롤하게 하고,리프레시 토큰만 서버에서 DTO에 담아 전달하는 방식은 어떤지요? 프로젝트 진행 기준으로 안내주시면 참고하여 진행하도록 하겠습니다. :)
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
계속 persistence unit name 못 찾는다는 오류가 생기는 분들
pom.xmjpa 하이버네이트 디펜던시 옵션 중에서<type>pom</type>을 제거해보시기 바랍니다. <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.4.2.Final</version> </dependency> <dependency>
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
api에 대해서
지난 강의 JPA 활용 1편을 듣고왔는데요,API를 개발하는 이유와 의미가 무엇인가요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Jpa 데이터베이스 매칭 관련 질문입니다.
안녕하세요 강사님.인프런 스터디 과제 7일차 문제 1번 jpa 코드로 변환하던 중 warehousingDate 컬럼 부분에서 문제가 발생하였습니다.Fruits의 테이블 컬럼 이름은 warehousingDate 입니다. { "name":"바나나", "warehousingDate":"2024-02-25", "price":7000 }jpa 코드로 바꾼 후 위에처럼 post 하였더니 아래와 같은 결과가 나왔습니다.Unknown column warehousing_date in field list라고 에러가 뜹니다. 처음에는 @Column(name="warehousing_date") 을 붙이지 않아서 에러가 나는 줄 알고 @Column(name="warehousing_date") 을 붙이고도 진행하였더니 똑같은 에러가 발생하였습니다.그래서 Fruits 앤티티 warehousingDate 변수명을 warehousing_date로도 변경을 해봤더니 똑같은 에러가 발생하였습니다. Fruits 엔티티는 아래와 같습니다.@Entity public class Fruits { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @Column(name="warehousing_date") private LocalDate warehousingDate; private long price; @Column(nullable = true) private boolean sales; public Fruits() { } public Fruits(String name, LocalDate warehousingDate, long price, boolean sales) { this.name = name; this.warehousingDate = warehousingDate; this.price = price; this.sales = sales; } public String getName() { return name; } public void setName(String name) { this.name = name; } public LocalDate getWarehousingDate() { return warehousingDate; } public void setWarehousingDate(LocalDate warehousingDate) { this.warehousingDate = warehousingDate; } public long getPrice() { return price; } public void setPrice(long price) { this.price = price; } public boolean isSales() { return sales; } public void setSales(boolean sales) { this.sales = sales; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } }컨트롤러 코드는 아래와 같습니다.@PostMapping("/api/v1/fruit") public void fruitInformation(@RequestBody FruitCreateRequest information){ fruitService.saveInformation(information); }서비스 코드는 아래와 같습니다.private final FruitJpaRepository fruitRepository; public FruitService(FruitJpaRepository fruitRepository) { this.fruitRepository = fruitRepository; } public void saveInformation(FruitCreateRequest request){ fruitRepository.save(new Fruits(request.getName(),request.getWarehousingDate(), request.getPrice(), request.getSales())); }RequestDto 코드는 아래와 같습니다.public class FruitCreateRequest { private String name; private LocalDate warehousingDate; private long price; private boolean sales; @JsonIgnore private Long id; public String getName() { return name; } public void setName(String name) { this.name = name; } public LocalDate getWarehousingDate() { return warehousingDate; } public void setWarehousingDate(LocalDate warehousingDate) { this.warehousingDate = warehousingDate; } public long getPrice() { return price; } public void setPrice(long price) { this.price = price; } public void setSales(boolean sales) { this.sales = sales; } public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setId(long id) { this.id = id; } public boolean getSales(){ return sales; } } 혹여나 제가 놓친 부분이 없는 지 확인해 주시면 감사하겠습니다. 그리고 fruits 컬럼명은 warehousingDate 라 적었는 데 hibernate는 warehousing_date과 매칭할려는지 알고싶습니다.질문이 서투른 점 양해바랍니다..
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Xss 에서 WebConfig 오류 발생됩니다.
WebConfig 에 필터 등록 하는 부분에서 오류? 가 생깁니다.현재 스프링 부트 3.2.2 버전입니다. 혹시 버전으로 인한 문제일까요?해결방법 부탁드리겠습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
[h2] id 및 name 값 대치 문제
안녕하세요, 우선 학습하던 부분은 다음과 같습니다. 강의 : 자바 ORM 표준 JPA 프로그래밍 - 기본편섹션 : 2 - JPA 시작하기 -> 애플리케이션 개발먼저 강의에서 영한님께서 설명하신 것처럼 id(1L)와 name("helloA")을 생성하는 코드를 작성한 후, h2에 성공적으로 row가 삽입된 것을 확인하였습니다.그리고, 이어서 또 다른 id(2L)와 name("helloB")를 생성 후, 성공적으로 쿼리가 날려진 것을 목격한 후, h2에서 확인을 진행하였으나 값이 대치가 되어버린 문제 상황을 마주했습니다. 강의에서 영한님께서는 기존 값뿐만 아니라 새로 생성한 값까지 포함해서 총 2개의 row가 존재하는 반면, 저는 기존 row를 새 값이 대치해버림에 따라 row가 하나만 존재하는 상황에 대해서 원인과 해결 방법을 여쭙고자 합니다. 감사합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
ZIPKIN에서 오류 나시는분들
Spring 3버전대에서 zipkin 설정이 바뀌면서 # zipkin: # base-url: http://13.124.192.188:9411 # enabled: true이 부분을 주석처리하고management: tracing: sampling: probability: 1.0 propagation: type: b3 zipkin: tracing: endpoint: "http://localhost:9411/api/v2/spans"위와 같이 설정하였다면 docker run 할때 문제가 생길 수 있습니다! 해당 내용을 토대로 환경변수를 주고 실행을 시켜야 합니다(저도 깜빡하고 왜 오류나지 고민만 했는데.. 설정을 바꿨었더라구요!)user-service docker rundocker run -d --network ecommerce-network \ --name user-service \ -e "spring.cloud.config.uri=http://config-server:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "logging.file=/api-logs/users-ws.log" \ kimtaeheon/user-service:1.0order-service docker rundocker run -d --network ecommerce-network \ --name order-service \ -e "spring.cloud.config.uri=http://config-server:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "spring.datasource.url=jdbc:mariadb://mariadb:3306/mydb" \ -e "logging.file=/api-logs/orders-ws.log" \ kimtaeheon/order-service:1.0
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
need more stock
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품주문 test에서 코드를 똑같이 따라 쳤는데 need more stock exception이 나요그리고 그 아래 상품주문_재고수량초과 테스트를 적을 때 @Test 에 expected를 적는데 expected라는 메소드를 해결할 수 없다고 빨간줄이 떠요링크 공유합니다https://drive.google.com/file/d/1Yr0w6SZWSH3Usqd8Gbx8bhQTcfRmmWHz/view?usp=sharing
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
mariadb 접속 관련해서 질문 있습니다.
강의에서 권한을 주는 부분을 보기 전에 작성해주신 아래와 같은 Dockerfile을 사용하였을 경우 실행이 되지 않았습니다.1번FROM mariadb ENV MYSQL_ROOT_PASSWORD rlaxogjs8312 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql /var/lib/mysql EXPOSE 3306그래서 저는 복사하는 폴더가 문제인가 해서 COPY부분을 아래와 같이 바꿔서 mydb만을 복사하도록 하였습니다.2번FROM mariadb ENV MYSQL_ROOT_PASSWORD rlaxogjs8312 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql/mydb /var/lib/mysql EXPOSE 3306이렇게 하였더니 db가 제대로 복사가 되지는 않았지만 로컬에서 접속이 가능하였습니다.그래서 왜 복사가 안되는거지.. 고민하다가 나머지 강의를 듣고 다시 1번으로 빌드 후 실행한 뒤에는 복사도 잘 되었음을 확인하였습니다.궁금한 점은 다음과 같습니다.왜 2번 Dockerfile의 경우 복사는 제대로 되지 않았는데 로컬호스트에서 DB에 접속이 가능했었던 건지 궁금합니다.만약 COPY가 아니라 VOLUME을 적용해서 한 과거 기억을 되살려보면 권한은 문제가 없었던 것 같은데 권한은 해당 Docker Container에 어떤 이유때문에 적용해야하는 것인지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품수정 바꿀 사항은 적고 수정했는데 원래값도 존재
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.가격과 재고수량을 바꾸고 submit을 했는데 원래값도 그대로 있어요
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
외래키 중복 관련 질문
import com.example.banking.domain.user.User import com.example.banking.support.BaseEntity import jakarta.persistence.Entity import jakarta.persistence.FetchType import jakarta.persistence.JoinColumn import jakarta.persistence.ManyToOne @Entity class Account( var balance: Double, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") val user: User, id: Long = 0 ) : BaseEntity(id) { fun addAccount(user: User) { user.accounts.add(this) } fun addBalance(amount: Double) { balance += amount } fun subtractBalance(amount: Double) { balance -= amount } }import com.example.banking.domain.account.Account import com.example.banking.support.BaseEntity import jakarta.persistence.* @Entity class Transaction( val amount: Double, @Enumerated(EnumType.STRING) val type: TransactionType, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn val sender: Account, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn val recipient: Account?, id: Long = 0L ) : BaseEntity(id) { constructor(amount: Double, type: TransactionType, sender: Account) : this(amount, type, sender, null) } import com.example.banking.domain.account.Account import com.example.banking.domain.user.User import com.example.banking.domain.user.UserInfo import com.example.banking.repository.account.AccountRepository import com.example.banking.repository.transaction.TransactionRepository import com.example.banking.repository.user.UserRepository import jakarta.persistence.EntityManager import jakarta.transaction.Transactional import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest import org.springframework.test.annotation.Rollback @SpringBootTest @Transactional @Rollback(value = false) class TransactionTest( @Autowired private val em: EntityManager, @Autowired private val transactionRepository: TransactionRepository, @Autowired private val userRepository: UserRepository, @Autowired private val accountRepository: AccountRepository ) { @Test fun testTransaction() { val user1 = User(UserInfo("b", "Seoul", "123", "123")) val user2 = User(UserInfo("b2", "Seoul", "123", "123")) userRepository.save(user1) userRepository.save(user2) em.flush() em.clear() val account1 = Account(100.0, user1) val account2 = Account(100.0, user2) account1.addAccount(user1) account2.addAccount(user2) accountRepository.save(account1) accountRepository.save(account2) em.flush() em.clear() val sender = accountRepository.findById(account1.id).get() val recipient = accountRepository.findById(account2.id).get() val transaction = Transaction(50.0, TransactionType.TRANSFER, sender, recipient) transactionRepository.save(transaction) em.flush() em.clear() val transaction2 = Transaction(50.0, TransactionType.DEPOSIT, sender) transactionRepository.save(transaction2) // assertThat(sender.balance).isEqualTo(50.0) // assertThat(recipient.balance).isEqualTo(150.0) } } 위와같이 Transaction 엔티티와 Account 엔티티가 ManyToOne 으로 매핑되었을때, 테스트코드를 위와같이 작성시,transactionRepository.save(transaction2) 이 라인에서 Duplicate entry '97' for key 'transaction.UK_96vb4d846be64bta5qbxiicb1' 에러가 발생합니다.제가 알기론 외래키의 경우 중복된 값을 가지는것이 가능한것으로 알고 있는데, 같은 account id로 새로운 Transaction 을 생성할 시에 키가 중복이라는 에러가 발생하는데 왜 그런지 알고싶습니다. 코틀린으로 코드 작성한 점 양해부탁드립니다..
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
회원조회 API 버전1 포스트맨에서 could not get response
아래의 코드대로 회원 조회 API를 버전1 과 버전2를 수행하는데, 버전2의 경우는 응답이 잘 받아지는데 버전1은 error: abort 가 뜹니다. /* * 회원 조회 * */ @GetMapping("/api/v1/members") public List<Member> membersV1(){ return memberService.findMembers(); } @GetMapping("/api/v2/members") public Result membersV2(){ List<Member> findMembers = memberService.findMembers(); List<MemberDto> collect = findMembers.stream() .map(m -> new MemberDto(m.getName())) .collect(Collectors.toList()); // 스트림의 처리 결과를 리스트 형태로 수집 return new Result(collect); // Result 클래스를 통해 List<MemberDto>를 반환 }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
persistence.xml 의 필요성
스프링 DB 2편 강의에서는 jpa를 사용할 때 프로젝트에 따로 persistence.xml을 설정해주지 않았는데 이번 강의에서는 persistence.xml이 없으면 jpa가 제대로 동작하지 않는다고 하셔서 그 이유가 궁금합니다.이전 강의에서는 전부 설정을 gradle로 했는데 이번 강의에서는 maven을 사용해서 그런건가요, 아니면 강의 초반에 스프링이 개입되지 않은 순수 자바로만 jpa 프로젝트를 진행한다고 하신 그 이유 때문인가요? 항상 강의 강의 잘 듣고있습니다. 감사합니다!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
[MacOS] iterm h2 접속 오류
안녕하세요, 첨부한 사진과 같이 iterm에서 ./h2.sh 명령어를 통해 h2에 접속하려고 할 경우 다음과 같은 문구가 뜨며 h2에 접속이 되지 않습니다.검색해보니 macOS 관련 문제인 것 같긴 한데, 구글 및 커뮤니티에서 h2 접속 관련 질문을 찾아보았을 때 저처럼 h2 접속 오류 문제를 겪고 계신 분은 없으신 것 같아 어떻게 진행해야 할지 질문드립니다.(동일한 버전 - 2.2.224으로 일단 삭제 후, 재설치는 진행해본 상황입니다.)
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
entity 객체에 기본생성자를 넣어주는 이유
안녕하세요User객체에 기본생성자를 넣어야 작동하는 이유가 궁금합니다혹시 필드에 아무값도 넣지않을때를 대비해서 기본생성자를 사용하는건가요?
-
미해결실전! 스프링 데이터 JPA
쿼리 메서드 @Query시 limit
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 강의 듣는 도중 궁금증이 생겨 질문드립니다.만약 쿼리 메서드를 사용하여 특정 조건에 의해 게시물 10개만 가져오고 싶을 때List<Board> findTop10ByWriteDatetimeGreaterThanOrderByCommentCountDescViewCountDescWriteDatetimeDesc(String writeDatetime);과 같이 지저분하게 코드를 작성할 수 있었는데 메서드 이름이 너무 길어져 @Query를 사용해서 코드 양을 줄이고 싶었습니다. 하지만, jpql에 limit를 사용할 수 없는데 이 경우 어떻게 jpql을 작성해야 하는지 궁금합니다.