#grails
#grails
Вопрос:
У меня есть table vehicle, я написал запрос, как показано ниже
Vehicle.ExecuteQuery («выберите audio_system из Vehicle»), но я получаю сообщение об ошибке
ОШИБКА groovy.grails.web.errors.GrailsExceptionResolver ### Нет типа данных для узла: org.hibernate.hql.ast.tree.IdentNode -[IDENT] IdentNode: ‘audio_system’ {originalText=audio_system}
java.lang.Исключение IllegalStateException: нет типа данных для узла: org.hibernate.hql.ast.tree.IdentNode -[IDENT] IdentNode: ‘audio_system’ {originalText=audio_system}
Исходный код класса vehicle выглядит следующим образом
class Vehicle {
String vehicleSticker
String regNumber //plate
String chasisNumber
String engineNumber
Integer yearOfManufacture
Date purchasedOn
Boolean audioSystem
Boolean videoSystem
Boolean mobileCharger
Boolean laptopCharger
//Vehicle compliance
Date pucExpiry
Date pucTestingOn
Date taxTokenIssueDate
Date taxTokenExpiryDate
Date insuranceIssueDate
Date insuranceExpiryDate
Date permitIssueDate
Date permitExpiryDate
Date fitnessCertificateIssueDate
Date fitnessCertificateExpiryDate
Double odoReadingWhenServiceDone
Double dueOddReading
VendorRole vendor
VehicleType vehicleType
//RegistrationCertificate registrationCertificate
static mapping = {
//registrationCertificate(cascade:'all')
}
static constraints = {
yearOfManufacture(nullable:true)
regNumber(nullable:false,unique: true)
chasisNumber(blank:true)
engineNumber(blank:true)
purchasedOn(nullable:true)
taxTokenIssueDate(nullable:true)
taxTokenExpiryDate(nullable:true)
insuranceIssueDate(nullable:true)
insuranceExpiryDate(nullable:true)
permitIssueDate(nullable:true)
permitExpiryDate(nullable:true)
fitnessCertificateIssueDate(nullable:true)
fitnessCertificateExpiryDate(nullable:true)
odoReadingWhenServiceDone(nullable:true)
dueOddReading(nullable:true)
pucExpiry(nullable:true)
pucTestingOn(nullable:true)
vendor(nullable:true)
}
public String toString() {
"${vehicleSticker} ${regNumber?'| ' regNumber:''}"
}
Комментарии:
1. Можете ли вы предоставить полный исходный код для клиента и транспортного средства?
2. даже когда я пытаюсь получить любое поле, отличное от id, я получаю ошибку
Ответ №1:
Это должно быть
Vehicle.executeQuery("select audioSystem from Vehicle ")
Это запрос HQL, и вы используете имена классов и полей, а не имена таблиц и столбцов.
Ответ №2:
Убедитесь, что у вас есть поле, указанное этим именем в Entity