My Tables:
Product: id, name
Offer: id, value, product_id
Entities:
@Entity
@Table(name=\"product\"         
        
This not an error message. The print instruction results in toString() being invoked on the underlying IndirectSet.
TopLink will place an IndirectSet in the instance variable when the containing domain object is read from the datatabase. With the first message sent to the IndirectSet, the contents are fetched from the database and normal Set behavior is resumed.
IndirectCollection types are specifically implemented not to instantiate on toString():
For debugging purposes, #toString() will not trigger a database read.
However, any other call on the indirect collection, e.g., size() or isEmpty() will instantiate the object.
The database read is ultimately triggered when one of the "delegated" methods makes the first call to getDelegate(), which in turn calls buildDelegate(), which sends the message getValue() to the value holder. The value holder performs the database read. With the first message sent to the IndirectSet, the contents are fetched from the database and normal Set behavior is resumed.
See also IndirectList: not instantiated