Open berryberrybin opened 1 year ago
@Getter
@Setter
@Entity
@NoArgsConstructor(access=AccessLevel.PROTECTED)
public class Food{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="food_id")
private Long foodId;
private String foodName;
@ManyToONe(fetch=FetchType.LAZY)
@JoinColumn(name="store_id)
public Store store;
}
@Getter
@Setter
@Entity
@NoArgsConstructor(access=AccessLevel.PROTECTED)
public class Store{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="store_id")
private Long storeId;
private String storeName;
}
class com.jpastudy.ms.domain.Entity.StoreEntity$HibernateProxy$w7bUtIS5
이 부분을 통해 JPA Proxy를 확인 할 수 있음 could not initialize proxy - no Session
에러 발생함 (session이 없음)@Test
public void proxyTest(){
FoodEntity foodEntity = em.find(FoodEntity.class,5L); // food_id 값이 5L인 데이터를 찾는다.
System.out.println("======= 쿼리 전송 =======");
System.out.println("Food ID : " +foodEntity.getFoodId());
System.out.println("Food Name : " + foodEntity.getFoodName());
System.out.println("Food Calorie : " + foodEntity.getFoodCalorie());
System.out.println(foodEntity.getStoreEntity().getClass());
System.out.println("======= 쿼리 결과 =======");
System.out.println("///////////////////////////////");
System.out.println("///////////////////////////////");
System.out.println("======= Store 데이터 =======");
System.out.println("Store ID : " + foodEntity.getStoreEntity().getStoreId());
System.out.println("Store Name : " + foodEntity.getStoreEntity().getStoreName());
System.out.println("Store Address : " + foodEntity.getStoreEntity().getAddress());
System.out.println("Store Number : " + foodEntity.getStoreEntity().getStoreNumber());
em.close();
}
Lombok 라이브러리 생성자 관련 어노테이션
생성자 접근 Level 설정