'@JoinColumn's but the primary key has 2 columns
1. An association that targets entity 'cohttp://m.realworld.feature.member.entity.MemberJpaEntity' from entity 'cohttp://m.realworld.feature.product.entity.ProductJpaEntity' has 1 '@JoinColumn's but the primary key has 2 columns
@JoinColum을 작성을 잘못하여 에러가 났었던 오류이다.. ㅠㅠ
2. object references an unsaved transient instance - save the transient instance before flushing : cohttp://m.realworld.feature.product.entity.ProductJpaEntity.member -> cohttp://m.realworld.feature.member.entity.MemberJpaEntity
오류 해당 오류는 저장을 먼저하지 않아 나타난 오류였다. 만약 먼저 저장되어 있는 것이라면 해당 부분을 먼저 조회해주면 JPA 이를 인식하고 에러가 나오지 않는다.
@Transactional
public Product productGeneration(User user, ProductGenerationRequest request) {
Member member = memberQueryService.getMemberByUserId(user.getUsername());
Product product = Product.builder()
.title(request.getTitle())
.userId(member.getUserId())
.member(member.toEntity())
.category(request.getCategory())
.price(request.getPrice())
.build();
return productRepository.save(product.toEntity()).toDomain();
}
getMemberByUserId를 통해 조회를 해오니 해당 에러가 사라짐
3. Cannot invoke "org.hibernate.metamodel.mapping.AttributeMapping.getValue(Object)" because the return value of "org.hibernate.metamodel.mapping.EntityMappingType.findAttributeMapping(String)" is null
해당 오류는 table 간에 관계 매핑이 제대로 되어있지 않아 오류가 발생하였다. 나같은 경우는 두 사이 테이블 사이간의 제약조건이 fk로 걸려있었어야 했는데 해당 부분이 제약조건 쪽에서 에러가나 생성되지 않아서 둘 사이 관계를 매핑해줄 때, 런타임에서 발생하였던 오류이다.