You can prove to yourself whether or not the set is being fully loaded by turning on parameter logging. In you log4j.parameters, add this line:
Code:
log4j.logger.org.hibernate.type=DEBUG
That will show you all the data that is being loaded from the DB. It is possible that the ids for all the OrderItems are being loaded, but I think that that only happens when you use a query to load the items, as opposed to a colleciton mapping. If you're loading an OrderObject and seeing all its OrderItems being loaded, I'd imagine that you are eagerly fetching the collection.
Actually, now that I think about it a bit more, it is probable that the set would have to be fully loaded in order to add a new item. This is because of the general constract of a set: it cannot contain duplicates. The only way to find out if a set contains an item that you're adding is to load every item in the set and compute its hashCode. Because of this, you may find that you will have to change your mapping to a simple many-to-one association from OrderItem to OrderObject, and use a factory class to query an OrderObject's OrderItems.