I'm using Hibernate Annotations.
In all my model classes I annotate like this:
@Entity
@Table
public class SomeModelClass {
//
}
My hibernate.cfg.xml is
<hibernate-configuration>
<session-factory>
<!-- some properties -->
<mapping package="com.fooPackage" />
<mapping class="com.fooPackage.SomeModelClass" />
</session-factory>
</hibernate-configuration>
For every class I add to the com.fooPackage I have to add a line in the hibernate.cfg.xml like this:
<mapping class="com.fooPackage.AnotherModelClass" />
Is there a way I can add new model classes but don't need to add this line to hibernate.cfg.xml?
Best Answer
Out of the box - no. You can write your own code to detect / register your annotated classes, however. If you're using Spring, you can extend
AnnotationSessionFactoryBean
and do something like:If you're not using Spring (and you should be :-) ) you can write your own code for detecting appropriate classes and register them with your
AnnotationConfiguration
viaaddAnnotatedClass()
method.Incidentally, it's not necessary to map packages unless you've actually declared something at package level.