Spring 데이터/jpa/hibernate/mysql/junit 어플리케이션의 삽입 문에 약간의 문제가 있습니다. 간단한 INSERT 문을 수행 할 수 있는지 확인하기 위해 작은 단위 테스트를 만들었습니다.Hibernate, jpa, mysql
@Test
public void testAddAssignment() {
Assignment assignment = new Assignment();
assignment.setCharacter("Z");
assignment.setType(1);
assignmentController.addAssignment(assignment);
assignment = assignmentController.findAssignmentById(16);
assertEquals(16, assignment.getId());
assertEquals(1, assignment.getType());
assertEquals("Z", assignment.getCharacter());
}
내가 이것을 실행하려고 할 때 다음과 같은 오류 얻을 : 이 내가 무엇을 가지고
org.springframework.dao.InvalidDataAccessResourceUsageException: could not insert: [com.byronvoorbach.domain.Assignment]; SQL [insert into Assignment (CHARACTER, TYPE) values (?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not insert: [com.byronvoorbach.domain.Assignment]
그리고 이것은 내 addAssignment (의 할당은)입니다;
@Transactional
public Assignment addAssignment(Assignment assignment) {
return repository.save(assignment);
}
는 그리고 이것은 내 저장소입니다 : 내가 쿼리가 엉망이됩니다 위치를 찾을 수있어 SQL 쿼리를 쓴 적이 있기 때문에
@Transactional(readOnly = true)
public interface AssignmentRepository extends JpaRepository<Assignment, Long> {
public List<Assignment> findByType(int type);
}
. 누구나 아이디어가 있습니까? JB Nizet에 감사 fmucar 나는이 문제를 해결할 수 있었다 :
EDIT (당신이 더 많은 소스 코드 또는 내 .xml 파일이 필요하면 알려주세요). 열 이름을 변경했는데 이제는 작동합니다! Apperantly 내가 인식하지 못했던 컬럼 이름 짓기에 몇 가지 제한이있다.
Pff 나는 결코이 결론에 도달하지 않았을 것이다. .. 고맙다 alot !! –
새로운 이름으로 테스트를 다시 한 번 해보니 매력처럼 작동합니다! 다시 한 번 감사드립니다 –