В bootstrap.goovy нам нужно создать статические / тестовые записи базы данных, если они еще не существуют (т.е. созданы, когда приложение было запущено ранее)
def admin1 = Operator.findOrSaveWhere(username: "admin", password: "test", firstName: "admin", lastName: "admin", email: "a@b.com")
Создает запись, если она не существует, или читает ее, если она существует. Отлично.
Проблема возникает, когда мы хотим использовать admin1 в качестве поля в другом выражении SQL, например,
def note1 = Note.findOrSaveWhere(user: user1, operator: operator1, note: "This is a note. Pretty dull. User is Boib. you can trust him 1")
Это не с:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: come.me.myapp.Operator
findOrSaveWhere, вероятно, только что создал оператор, но не сбрасывается в БД.
обычно, если вы используете admin1.save (flush: true), это решит эту проблему. Есть ли способ очистить что-то, созданное с помощью findOrSaveWhere?