5.7. Metadata Placement
Prev | Chapter 5. Metadata | Next

## 5.7. Metadata Placement

JDO metadata must be available both during class enhancement and at runtime. The metadata document listing a persistent class must be available as a resource from the class' class loader, and must exist in one of two standard locations:

1. In a resource called `<class-name>.jdo`, where `<class-name>` is the name of the class the document applies to, without package name. The resource must be located in the same package as the class.

2. In a resource called `package.jdo`. The resource should be placed in the corresponding package, or in any ancestor package. Package-level documents contain the metadata for all the persistence-capable classes in the package, except those classes that have individual `class-name.jdo` resources. Package-level documents may also contain the metadata for classes in any sub-packages.

Assuming you are using a standard Java class loader, these rules imply that for a class `Magazine` defined by the file `org/mag/Magazine.class`, you can define the corresponding metadata in any of the following files:

- `org/mag/Magazine.jdo`

- `org/mag/package.jdo`

- `org/package.jdo`

- `package.jdo`

Because metadata documents are loaded as resources, JDO implementations can also read them from `jar` files.

Prev | Up | Next
5.6. The Complete Document | Home | Chapter 6. JDOHelper