我在Spring-data/jpa/hibernate/mysql/junit应用程序中插入语句有一个小问题。我创建了一个小单元测试,看看我是否可以做一个简单的INSERT语句。 这是我有:休眠,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(分配新建分配FY);
@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查询我无法找到在查询得到弄糟。 有没有人有想法?
(让我知道如果你需要更多的源代码或我的.xml文件)
编辑: 感谢JB Nizet和fmucar我能解决这个问题。我改变了列名,现在它的工作原理!显然,列名命名有一些限制,我不知道。
PFF我永远不会得出这个结论......非常感谢! –
我只是重新测试了新的名字,它的作用就像一个魅力!再次感谢 –