"...all class instances are passed by reference. Only primitive types are passed by value"
I dont have the book in front of me, but I think the quote from the book is generally true. Im not trying to say that you are incorrect, or the article you posted, but if you are discussing Java with people who know the difference between value and reference and values of references (or just how the method stack works and assembly language), they probably wont correct this. If the authors got to the minute level of precision in the text where they need to explain this concept in a page instead of a sentence, then the focus of the book is not Hibernate anymore... I think it is fine. Chris
ps. I think the confusion is there are multiple interpretations of "by reference" and "by value".
Generally "by value" means a method can't operate on the caller's scope.
Generally "by reference" means a method can operate on the caller's scope.