Skip to content

Commit e6d1dd6

Browse files
committed
Merge branch 'master' of github.com:max-l/Squeryl
2 parents 21c5433 + 2d13937 commit e6d1dd6

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/main/scala/org/squeryl/Table.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class Table[T] private [squeryl] (n: String, c: Class[T], val schema: Schema, _p
3939
val o = _callbacks.beforeInsert(t.asInstanceOf[AnyRef])
4040
val sess = Session.currentSession
4141
val sw = new StatementWriter(_dbAdapter)
42-
_dbAdapter.writeInsert(t, this, sw)
42+
_dbAdapter.writeInsert(o.asInstanceOf[T], this, sw)
4343

4444
val st =
4545
(_dbAdapter.supportsAutoIncrementInColumnDeclaration, posoMetaData.primaryKey) match {

src/test/scala/org/squeryl/test/schooldb/SchoolDb.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,12 @@ class SchoolDb extends Schema {
248248
super.drop
249249
}
250250

251+
def studentTransform(s: Student) = {
252+
new Student(s.name, s.lastName, s.age, ((s.gender % 2) + 1), s.addressId, s.isMultilingual)
253+
}
254+
251255
val beforeInsertsOfPerson = new ArrayBuffer[Person]
256+
val transformedStudents = new ArrayBuffer[Student]
252257
val beforeInsertsOfKeyedEntity = new ArrayBuffer[KeyedEntity[_]]
253258
val beforeInsertsOfProfessor = new ArrayBuffer[Professor]
254259
val afterInsertsOfProfessor = new ArrayBuffer[Professor]
@@ -259,6 +264,9 @@ class SchoolDb extends Schema {
259264
val professorsCreatedWithFactory = new ArrayBuffer[Int]
260265

261266
override def callbacks = Seq(
267+
// We'll change the gender of z1 z2 student
268+
beforeInsert[Student]
269+
map(s => {if (s.name == "z1" && s.lastName == "z2"){val s2 = studentTransform(s); transformedStudents.append(s2); s2} else s}),
262270

263271
beforeInsert[Person]
264272
map(p => {beforeInsertsOfPerson.append(p); p}),
@@ -643,10 +651,14 @@ abstract class SchoolDbTestRun extends SchoolDbTestBase {
643651
afterInsertsOfProfessor.clear
644652
beforeDeleteOfSchool.clear
645653
professorsCreatedWithFactory.clear
654+
transformedStudents.clear
646655

647656
val s1 = students.insert(new Student("z1", "z2", Some(4), 1, Some(4), Some(true)))
657+
val sOpt = from(students)(s => where(s.name === "z1" and s.lastName === "z2") select(s)).headOption
648658

659+
assert(sOpt.isDefined && sOpt.map(_.gender == 2).getOrElse(false))
649660
assert(beforeInsertsOfPerson.exists(_ == s1))
661+
assert(transformedStudents.exists(_ == s1))
650662
assert(! beforeInsertsOfKeyedEntity.exists(_ == s1))
651663
assert(!beforeInsertsOfProfessor.exists(_ == s1))
652664
assert(!afterInsertsOfProfessor.exists(_ == s1))

0 commit comments

Comments
 (0)