我試過在我的spring應用程序中運行以下測試。org.h2.jdbc.JdbcSQLException:未找到列「Salman」;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=App1Application.class)
@Sql(scripts="customerTest.sql")
@DirtiesContext(classMode=ClassMode.AFTER_EACH_TEST_METHOD)
public class customerTest {
@Autowired
customerRepository customerDB;
@Test
public void countRecords(){
assertThat(customerDB.count(),is(2l));
}
}
,並在customerTest.sql文件我有:
insert into customer(id,name,lastname) values(1,"Salman","Lashkarara");
insert into customer(id,name,lastname) values(2,"Saba","Lashkarara");
這裏是我的客戶類
@Entity
@Data
public class customer {
@Id
@GeneratedValue
int id;
String name;
String lastname;
}
我用JPA太:
public interface customerRepository extends JpaRepository<customer,Long>{
}
的問題是,當我運行我面對出錯的測試:
org.h2.jdbc.JdbcSQLException: Column "Salman" not found; SQL statement:
insert into customer(id,name,lastname) values(1,"Salman","Lashkarara")
同時「薩勒曼」是一個值而不是列?
請注意,我使用彈簧MVC所以沒有數據庫 我只有我的代碼所做的模型(customer
)。
那麼文件「customerTest.sql」包含什麼內容? –
它包含2個插入查詢,正如我所提到的 – Salman
雙引號'''是SQL中的一個保留字符,因此,''Salman''不像您期望的那樣是一個字符串值,而是一個對象標識符,它在'INSERT'語句被推斷爲一個列名,SQL中的字符串需要用單引號括起來''''''Salman''應該是''Salman''和''Lashkarara'''應該是''Lashkarara ''。 – manish