Я решил протестировать Spring Boot. Мой проект имеет следующие зависимости: JPA, MySql, WEB. Я создал простую базу данных MySql. Вот таблица из него:Получить com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Неизвестный столбец
CREATE TABLE `rawtype` (
`rtId` int(10) unsigned NOT NULL AUTO_INCREMENT,
`rtName` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`rtId`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Вот домен для этой таблицы:
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name="rawtype")
public class Rawtype implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="rtId", nullable = false)
@GeneratedValue
private int rtId;
@Column(name="rtName", nullable = false)
private String rtName;
protected Rawtype() {
}
public Rawtype(int rtId, String rtName) {
this.rtId = rtId;
this.rtName = rtName;
}
public int getRtId() {
return rtId;
}
public void setRtId(int rtId) {
this.rtId = rtId;
}
public String getRtName() {
return rtName;
}
public void setRtName(String rtName) {
this.rtName = rtName;
}
@Override
public String toString() {
return "Rawtype{" +
"rtId=" + rtId +
", rtName='" + rtName + '\'' +
'}';
}
}
Попытки получить все строки из этой таблицы с JpaRepository методом
List<T> findAll();
В журнале Я вижу, что Hibernate выполняет этот запрос:
select rawtype0_.rt_id as rt_id1_0_, rawtype0_.rt_name as rt_name2_0_ from rawtype rawtype0_
И я получаю эту ошибку:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'rawtype0_.rt_id' in 'field list'
Можно ли предположить, что я должен делать? Спасибо.
P.S.
RawtypeRepository.java
import org.springframework.data.jpa.repository.JpaRepository;
import domain.Rawtype;
public interface RawtypeRepository extends JpaRepository<Rawtype,Integer> {
}
RawtypeServiceImpl.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import domain.Rawtype;
import java.util.List;
@Service
@Transactional
public class RawtypeServiceImpl implements RawtypeService{
@Autowired
RawtypeRepository rawtypeRepository;
public List<Rawtype> findAll() {
return rawtypeRepository.findAll();
}
}
так, столбец «rawtype0_.rt_id» не существует –
Да, его не существует. У меня есть столбец rtId, но не rt_id. Я не понимаю, как Hibernate генерирует этот rt_id. – zigfridus
хорошо, можете ли вы опубликовать метод, в котором создается запрос на спящий режим? –