Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // inner
- val query6 = withSQL {
- select
- .from(Worker as w)
- .leftJoin(WorkProject as wp).on(w.mbr, wp.mbr)
- .leftJoin(Project as p).on(wp.spr, p.spr)
- }.map(Worker(w, p)).list.apply()
- // tuple
- val query7 = withSQL {
- select
- .from(Worker as w)
- .leftJoin(WorkProject as wp).on(w.mbr, wp.mbr)
- .leftJoin(Project as p).on(wp.spr, p.spr)
- }.map(rs => (Worker(w)(rs), rs.longOpt(p.resultName.spr).map(_ => Project(p)(rs)))).list.apply()
- // sample1
- Worker(10,Pera,Peric,None,Some(10000.00),Some(100.00),1987-01-01,Some(Project(10,100,Some(Optimizacija u spicu),Some(TE-TO))))
- Worker(170,Ana,Stanic,Some(70),Some(20000.00),None,1970-07-13,None)
- //sample2
- (Worker(10,Pera,Peric,None,Some(10000.00),Some(100.00),1987-01-01,None),Some(Project(10,100,Some(Optimizacija u spicu),Some(TE-TO))))
- (Worker(160,Ruza,Ruzic,Some(70),Some(10000.00),None,1940-07-13,None),None)
- // binding
- case class Worker(mbr: Long, firstname: String, lastname: String, boss: Option[Long], salary: Option[java.math.BigDecimal], bonus: Option[java.math.BigDecimal], birthdate: java.sql.Date, project: Option[Project] = None)
- object Worker extends SQLSyntaxSupport[Worker] {
- override val tableName = "worker"
- def apply(o: ResultName[Worker])(rs: WrappedResultSet): Worker = new Worker(
- rs.long(o.mbr),
- rs.string(o.firstname),
- rs.string(o.lastname),
- rs.longOpt(o.boss),
- rs.bigDecimalOpt(o.salary),
- rs.bigDecimalOpt(o.bonus),
- rs.date(o.birthdate))
- def apply(o: SyntaxProvider[Worker])(rs: WrappedResultSet): Worker = apply(o.resultName)(rs)
- // ovde
- def apply(w: SyntaxProvider[Worker], p: SyntaxProvider[Project])(rs: WrappedResultSet): Worker =
- apply(w.resultName)(rs).copy(project = rs.longOpt(p.resultName.spr).map(_ => Project(p)(rs)))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement