Spring-data/jpa/hibernate/mysql/junitアプリケーションのinsert文に小さな問題があります。単純な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(assigment)です。
@Transactional
public Assignment addAssignment(Assignment assignment) {
return repository.save(assignment);
}
そして、これが私のリポジトリです:
@Transactional(readOnly = true)
public interface AssignmentRepository extends JpaRepository<Assignment, Long> {
public List<Assignment> findByType(int type);
}
私は、クエリが台無しに取得する場所を見つけることができませんよ、SQLクエリを書いたことはありませんので。 誰かがアイデアを持っていますか? JB Nizetのおかげとfmucar私はこの問題を解決することができました:
EDIT(あなたがより多くのソースコードや私の.xmlファイルが必要な場合は、私に教えてください)。私は列の名前を変更し、今それは動作します!私が気づいていない列の命名には、控えめにいくつかの制限があります。
Pff私はこの結論に来なかったでしょう...ありがとう! –
私はちょうど新しい名前でテストをreranし、それは魅力のように動作します!もう一度ありがとう –