James' answers are totally accurate. The author of that question appears to be confusing DAO with the TO pattern.
What no one has said yet is: What really is the TO pattern about. James mentions that TO is used for "transferring data from one object-based layer to another." This is correct but there is a deeper purpose. The primary purpose of TO is reduce network traffic between a
remote business tier and the web tier.
If a remote business tier exposed an Entity
EJB to the web tier, then every access method (getFirstName, getLastName, getAge, getGender, etc) would invoke a remote call to the business tier. The TO pattern reduces this traffic to one method call: getCustomerData():CustomerTO. This method, which is usually part of a remote Session bean (a'la Session Facade pattern), collects all of the customer data from the Customer Entity bean and packages it up into a Serializable object which is passed across the network in one transfer. Yes, this will be a bigger packet of data being transferred across the network, but the greater performance cost is the accumulative round-trip time of the multiple accessor calls describe above.
Hope that helps.
Note that the TO pattern is not needed if the web and business logical tiers are on the same physical machine (same JVM). In this situation, there is no network traffic when the web tier calls the individual accessor methods.
Regards,
Bryan