域 class 保存和会话保存有什么区别
What is difrence betwean domain class save and session save
有人可以向我解释这些代码示例 (Grails 3.3.11) 之间的区别吗
Session session = sessionFactory.openSession()
Person person = new Person()
person.firstName = "John"
person.lastName = "Roy"
person.address = "New York"
session.save(person)
和
Person person = new Person()
person.firstName = "John"
person.lastName = "Roy"
person.address = "New York"
person.save(person)
一个区别是 session.save(person)
将与映射到该 Hibernate 会话中的任何实体一起使用,而 person.save()
仅适用于 GORM 实体(它们也为您映射到 Hibernate 会话中)。
使用 GORM 时确实没有充分的理由使用 session.save(person)
。
我知道您没有询问最佳实践或 GORM 数据服务,而是与您的问题相关...
使用最新版本的 GORM 最佳实践是拥有像这样的抽象 GORM 数据服务...
import grails.gorm.services.Service
@Service(Person)
interface PersonService {
Person save(Person p)
}
然后将其注入到您想要保存的任何位置。例如,在控制器中:
class SomeController {
PersonService personService
def someAction() {
Person p = new Person()
// ...
personService.save p
// ...
}
}
有人可以向我解释这些代码示例 (Grails 3.3.11) 之间的区别吗
Session session = sessionFactory.openSession()
Person person = new Person()
person.firstName = "John"
person.lastName = "Roy"
person.address = "New York"
session.save(person)
和
Person person = new Person()
person.firstName = "John"
person.lastName = "Roy"
person.address = "New York"
person.save(person)
一个区别是 session.save(person)
将与映射到该 Hibernate 会话中的任何实体一起使用,而 person.save()
仅适用于 GORM 实体(它们也为您映射到 Hibernate 会话中)。
使用 GORM 时确实没有充分的理由使用 session.save(person)
。
我知道您没有询问最佳实践或 GORM 数据服务,而是与您的问题相关...
使用最新版本的 GORM 最佳实践是拥有像这样的抽象 GORM 数据服务...
import grails.gorm.services.Service
@Service(Person)
interface PersonService {
Person save(Person p)
}
然后将其注入到您想要保存的任何位置。例如,在控制器中:
class SomeController {
PersonService personService
def someAction() {
Person p = new Person()
// ...
personService.save p
// ...
}
}