Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trait RecordBaseMeta[T <: RecordBase[T]] {
- def tableName = getClass.getName.replaceFirst("\\$+$", "").replaceFirst(".*[\\$\\.]", "")
- def findAll: List[T] = {
- var list: List[T] = Nil
- val results = conn.createStatement.executeQuery("select * from " + tableName)
- while (results.next) {
- var data = Map[String, AnyRef]()
- val metaData = results.getMetaData
- for (column <- 1 to metaData.getColumnCount) {
- val obj = results.getObject(column)
- data = data + (metaData.getColumnName(column) ->
- (if (metaData.isNullable(column) == ResultSetMetaData.columnNoNulls)
- obj
- else {
- if (obj == null) None else Some(obj)
- }))
- }
- list = (getClass.getSuperclass.newInstance.asInstanceOf[T]).withData(data) :: list
- }
- list
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement