Table definition:
TABLE "SLIDE" (
"ID" BIGINT NOT NULL PRIMARY KEY IDENTITY,
"TITLE" VARCHAR(254) NOT NULL,
"BG_COLOR" VARCHAR(254),
"BG_IMAGE" VARCHAR(254),
etc...)
it should "update one existing record in the table" in {
db.withSession { implicit session =>
slides.ddl.create
try {
slides ++= Seq(
SlideEntity(title = "Slide1", ...),
SlideEntity(title = "Slide2", ...),
SlideEntity(title = "Slide3", ...),
SlideEntity(title = "Slide4", ...),
SlideEntity(title = "Slide5", ...))
val old = slides.filter(_.id === 3L).first
slides.filter(_.id === 3L).update(old.copy(title = "Slide3 is modified"))
val modified = slides.filter(_.id === 3L).first
modified.title shouldEqual "Slide3 is modified"
} finally {
slides.ddl.drop
}
}
}
UPDATE "SLIDE"
SET "ID" = ?, "TITLE" = ?, "BG_COLOR" = ?, "BG_IMAGE" = ?, etc...
WHERE "SLIDE"."ID" = 3
java.sql.SQLException: Cannot update identity column 'ID'.
val old = slides.filter(_.id === 3L).first.map(s => (s.title, s.bgColor, s.bgImage))
old.update((newSlide.title, newSlide
.bgColor, newSlide
.bgImage))