Я не очень знаком с Граалем, но этот случай для меня странен. Я создал доменное имя Product и хотел сохранить некоторые базовые данные в Bootstrap.groovy, но product.save () не сохранен в моей БД. Когда я пытаюсь получить весь продукт с помощью Product.getAll (), я получаю пустой массив. Но когда я создаю все леса для этого объекта домена, Grails использует ProductService для выполнения операции сохранения, и они видны в БД. Я делаю что-то не так или Save with Product.save () не поддерживается?
class Product {
UUID id
String name
static constraints = {
}
static mapping = {
id generator : 'uuid2', type: 'pg-uuid' // pg-uuid because I use postgresql
}
}
class BootStrap {
def init = { servletContext ->
def product = new Product(name: 'Launch day 1')
product.save()
def product1 = new Product(name: 'Launch day 2')
product1.save()
def product2 = new Product(name: 'Launch day 3')
product2.save()
}
def destroy = {
}
}
@Service(Product)
interface ProductService {
Product get(Serializable id)
List<Product> list(Map args)
Long count()
void delete(Serializable id)
Product save(Product product)
}
dataSource:
pooled: true
driverClassName: org.postgresql.Driver
dialect: org.hibernate.dialect.PostgreSQLDialect
username: "postgres"
password: "postgres"
dbCreate: create-drop
url: jdbc:postgresql://localhost:6543/grails_t
properties:
jmxEnabled: true
initialSize: 5
maxActive: 50
minIdle: 5
maxIdle: 25
maxWait: 10000
maxAge: 10 * 60000
timeBetweenEvictionRunsMillis: 5000
minEvictableIdleTimeMillis: 60000
validationQuery: "SELECT 1"
validationQueryTimeout: 3
validationInterval: 15000
testOnBorrow: true
testWhileIdle: true
testOnReturn: false
jdbcInterceptors: "ConnectionState;StatementCache(max=200)"
defaultTransactionIsolation: java.sql.Connection.TRANSACTION_READ_COMMITTED