Вы можете использовать IIF
:
SELECT IIF(1 = 1, 'true', 'false')
https://docs.microsoft.com/en-us/sql/t-sql/functions/ логическая-функция IIF--Transact-SQL
Поскольку это - Набор, если Вы хотите первый элемент, необходимо будет пойти:
profileInstance.photos.toArray()[0].id
или
profileInstance.photos.iterator().next()
Если у Вас есть URL для изображения, просто необходимо удостовериться, что Вы возвращаете соответствующий anser в контроллере:
def viewImage= {
//retrieve photo code here
response.setHeader("Content-disposition", "attachment; filename=${photo.name}")
response.contentType = photo.fileType //'image/jpeg' will do too
response.outputStream << photo.file //'myphoto.jpg' will do too
response.outputStream.flush()
return;
}
Мое предположение - Вы, должен установить тип контента ответного потока. Что-то как:
response.ContentType = "image/jpeg"
Это может или, возможно, не должно быть перед потоковой передачей к ответному потоку (не может предположить, что он имел бы значение). Я только что поместил его перед outputStream строкой в Вашем коде выше.
теперь, я на самом деле думаю, храня фотографию, поскольку двоичный блоб в базе данных не является лучшим решением - хотя у Вас могли бы быть причины, почему это должно быть сделано тот путь.
как насчет того, чтобы хранить название фотографии (и/или путь) вместо этого? Если имя, сталкивающееся, проблемы вероятны, используйте md5 контрольную сумму фотографии как имя. Затем фотография становится статическим ресурсом, простым файлом, вместо более сложного и более медленного запроса MVC.
id: 'profileInstance.photos .get (1) .id 'должен быть id: profileInstance.photos.get (1) .id. без квоты