我们如何在服务层上使用光滑的事务来制作交易系统

时间:2015-02-08 19:40:36

标签: scala playframework slick

在我的服务层中我想插入transaction-ally如果插入比所有三行都插入数据库!!

服务层是

def service(userRow, addressDao, contactDao) = DB.withTransaction { implicit session => 
    userDao.insert(userRow)
    addressDao.insert(addressRow)
    contactDao.insert(contactRow)
}

我的dao图层是

def insert(userRow: UsersRow) = DB.withTransaction { implicit session =>
    user += userRow
}

1 个答案:

答案 0 :(得分:1)

将插入方法更改为

def insert(userRow:UsersRow)(implicit session: Session)={
    user+=userRow
}

会话将被传播,并且所有插入都使用相同的会话。如果会话正在使用事务,那么它将在同一事务中完成。