# About the EntityDefImpl Class

A class extending directly or indirectly from oracle.jbo.server.EntityDefImpl. It stores runtime metadata describing the entity object, including attributes, events, validators, associations, and properties. When instantiated, it describes all instances of the entity object class. A client can call methods to find information about the entity object, such as the attribute names and types, database source, and so on. There is one entity definition class instance per entity XML file. The entity definition class is a singleton class at runtime.

You can use the Entity Object Wizard and Editor to generate this Java class for an entity object when you need custom create and find methods. This class is a good place to group together methods that are used by all entity object instances. For example, you can optionally modify the createDef method to use properties from another source (in addition to or instead of the XML) when the entity definition is instantiated.

You might also create this class if you want to provide custom properties to the entity definition and entity attribute definitions at runtime through the APIs.

If an entity object publishes or subscribes to an event (as specified in the Publish and Subscribe panels of the Entity Object Wizard and Editor), most of the event code is generated in the definition files of the entity objects that publish and subscribe.

You can specify that this class extend from a custom class (which must directly or indirectly extend the EntityDefImpl class and be in the project classpath); for example, you might do this if you want to reuse code that's already been written or if your organization decides to customize the business components framework to meet specific needs.