Do not create fields that you don't need for persistence
Storing only needed information will help to keep your database footprint as small as possible.
If your persistent class contains fields that do not need to be stored you should mark them as transient to prevent them from being stored:
.NET: public class NotStorable { [Transient] private int length; . . . }
You can use Callbacks or Translators to set transient fields on retrieval.
Also avoid storing classes having only transient information - their indexes' maintenance will produce unnecessary performance overhead.