Я импортирую файл и читаю его содержимое. Затем я сохраняю контент прямо в базу данных. Пример кода выглядит следующим образом.
def file = request.getFile('file')
if (file.empty) {
flash.message = "File cannot be empty"
return
}
String content = new String(file.getBytes())
Product product = new Product()
product.description = content
product.save(flush:true, failOnError:true)
Сохранение завершается с ошибкой, приводящей к следующей ошибке.
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not insert: [Product]; uncategorized SQLException for SQL [...]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xEF\xBB\xBFNan' for column 'product_description' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xEF\xBB\xBFNan' for column 'product_description' at row 1
Я предполагаю, что проблема связана с кодированием. Интересно, нужно ли что-то сделать с контентом, импортированным из файла, перед сохранением контента в базе данных.
Я ценю любую помощь. Спасибо!
Пожалуйста, посмотрите ниже экрана ошибки
UPDATE:
Вот фактический код
def uploadRegistrations() {
def file = request.getFile('file')
if (file.empty) {
flash.message = "File cannot be empty"
return
}
String content = new String(file.getInputStream().getText('UTF-8'))
def id = params['id']
def event = CompositeEvent.get(id.toLong())
def reg = new RaceRegistration(race: event.races[0], compositeEvent: event, raceParticipant: new EmbeddedRaceParticipant(
firstName: content.split(',')[0],
lastName: "none",
gender: Gender.MALE
),
waiver: Waiver.getInstance(event),
status: EntityStatus.ACTIVE
)
reg.save(flush: true, failOnError: true)
Важной частью является использование контента в имени домена RaceRegistration.