When multiple object types are using the same physical data model, incorrect constraints can be generated. Suppose B extends A. If you specify a property in B that maps into the physical table that stores A, and you specify that property as 1..1, then the a not null constraint is generated on that property for the data model, when in fact this constraint should be enforced by persistence.