Advertisement
Guest User

Untitled

a guest
Feb 12th, 2015
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.81 KB | None | 0 0
  1.  
  2. // inner
  3.   val query6 = withSQL {
  4.     select
  5.       .from(Worker as w)
  6.       .leftJoin(WorkProject as wp).on(w.mbr, wp.mbr)
  7.       .leftJoin(Project as p).on(wp.spr, p.spr)
  8.   }.map(Worker(w, p)).list.apply()
  9.  
  10. // tuple
  11.   val query7 = withSQL {
  12.     select
  13.       .from(Worker as w)
  14.       .leftJoin(WorkProject as wp).on(w.mbr, wp.mbr)
  15.       .leftJoin(Project as p).on(wp.spr, p.spr)
  16.   }.map(rs => (Worker(w)(rs), rs.longOpt(p.resultName.spr).map(_ => Project(p)(rs)))).list.apply()
  17.  
  18.  
  19. // sample1
  20. 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))))
  21. Worker(170,Ana,Stanic,Some(70),Some(20000.00),None,1970-07-13,None)
  22.  
  23. //sample2
  24. (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))))
  25. (Worker(160,Ruza,Ruzic,Some(70),Some(10000.00),None,1940-07-13,None),None)
  26.  
  27. // binding
  28. 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)
  29.  
  30. object Worker extends SQLSyntaxSupport[Worker] {
  31.  
  32.   override val tableName = "worker"
  33.  
  34.   def apply(o: ResultName[Worker])(rs: WrappedResultSet): Worker = new Worker(
  35.     rs.long(o.mbr),
  36.     rs.string(o.firstname),
  37.     rs.string(o.lastname),
  38.     rs.longOpt(o.boss),
  39.     rs.bigDecimalOpt(o.salary),
  40.     rs.bigDecimalOpt(o.bonus),
  41.     rs.date(o.birthdate))
  42.  
  43.   def apply(o: SyntaxProvider[Worker])(rs: WrappedResultSet): Worker = apply(o.resultName)(rs)
  44.  
  45. // ovde
  46.   def apply(w: SyntaxProvider[Worker], p: SyntaxProvider[Project])(rs: WrappedResultSet): Worker =
  47.     apply(w.resultName)(rs).copy(project = rs.longOpt(p.resultName.spr).map(_ => Project(p)(rs)))
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement