Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Fields from superclass not considered #39

Open
jlcheng opened this issue Oct 31, 2011 · 4 comments
Open

Fields from superclass not considered #39

jlcheng opened this issue Oct 31, 2011 · 4 comments

Comments

@jlcheng
Copy link

jlcheng commented Oct 31, 2011

Given


object JacksonJsonDemo {

  def main(argv: Array[String]) {
    val bar = new Bar(age=10)
    bar.name = "Bar"
    println(generate(bar))
  }

}

case class Foo(var name:String = "Foo")
case class Bar(var age:Int = 0) extends Foo

I was expecting

{"name":"Bar", "age": 10}

The fields from the superclass are not included. This appears to be related to issue #4 (#4). Is this a bug or the design of the API?

@Pyppe
Copy link

Pyppe commented Jul 20, 2012

I have encountered the same problem (using Play 2.0 and having a superclass of my squeryl-based entities).

Any updates?

@Pyppe
Copy link

Pyppe commented Jul 20, 2012

    trait Foo {
        val id: Long = 0
        val createTime: Date = new Date()
        val updateTime: Date = new Date()
    }

    case class Bar(override val id: Long) extends Object with Foo

    def main(args: Array[String]) {
        val bar = Bar(1)
        println(Json.generate(bar))
    }

FYI: ^ seems that traits are serialized, though. ^

@florianleibert
Copy link

Any update on this?

@imikushin
Copy link
Contributor

Case class inheriting one another is a bad idea anyway: see http://ofps.oreilly.com/titles/9780596155957/AdvancedObjectOrientedProgramming.html chapter "Case Class Inheritance".

Case classes inheriting traits are fine.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants