개발일기
'@JoinColumn's but the primary key has 2 columns 본문
'@JoinColumn's but the primary key has 2 columns
한둥둥 2024. 5. 3. 16:451. 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로 걸려있었어야 했는데 해당 부분이 제약조건 쪽에서 에러가나 생성되지 않아서 둘 사이 관계를 매핑해줄 때, 런타임에서 발생하였던 오류이다.
'photocard backend server 개발일기' 카테고리의 다른 글
Ubuntu node js 설치하기 (0) | 2024.06.04 |
---|---|
docker 설치, docker-compose 설치하기 (0) | 2024.06.04 |
JPA Cascade 사용하기 위한 정리 (1) | 2024.05.01 |
Spring Junit5 통한 테스트 코드 작성 (6) | 2024.04.05 |
Certbot doesn't know how to automatically configure the web server on this system 에러 해결하기 (0) | 2024.03.21 |