[hibernate-dev] HHH-5375 - Move AnnotationConfiguration-added methods to Configuration and deprecate AnnotationConfiguration
Emmanuel Bernard
emmanuel at hibernate.org
Thu Jul 22 03:21:36 EDT 2010
Late in the game but we discussed the topic. I would go for the move in the next 3.6 beta to give people chance to test it.
On 14 juil. 2010, at 18:54, Steve Ebersole <steve at hibernate.org> wrote:
> http://opensource.atlassian.com/projects/hibernate/browse/HHH-5375
>
> In attempting this I ran into the difference between Configuration and
> AnnotationConfiguration of processing mapping files (hbm.xml).
> Configuration tries to process these immediately, whereas
> AnnotationConfiguration delays that attempt. So merging these 2 would
> require changing the behavior in Configuration to delay attempts to
> process/bind hbm.xml files to match what is done in
> AnnotationConfiguration.
>
> What's the ramification?
>
> Well previously Configuration would allow a developer to do, as an
> example, stuff like:
> Configuation cfg = ...;
> cfg.setProperty( "hibernate.default_schema", "ABC" );
> cfg.addResource( "SomeEntity.hbm.xml" );
> cfg.setProperty( "hibernate.default_schema", "XYZ" );
> cfg.addResource( "AnotherEntity.hbm.xml" );
>
> When "SomeEntity.hbm.xml" gets processed, the default schema in effect
> is "ABC"; when "AnotherEntity.hbm.xml" gets processed, it is "XYZ". Now
> this has never been explicitly supported, but it is a side effect of the
> lack of a "lifecycle" to how configurations are built (this will be
> addresses in 4.x).
>
> Now I am pretty sure we have consistently said that the above is not
> supported and that user should not expect the "added" metadata to be
> available until after buildMappings() has been called. In fact, what
> those calls should look like would be:
> Configuation cfg = ...;
> cfg.setProperty( "hibernate.default_schema", "ABC" );
> cfg.addResource( "SomeEntity.hbm.xml" );
> cfg.buildMappings();
> cfg.setProperty( "hibernate.default_schema", "XYZ" );
> cfg.addResource( "AnotherEntity.hbm.xml" );
> cfg.buildMappings();
>
> which has the same effect today as the code above, and will continue to
> have the same effect moving forward even if we have Configuation delay
> the processing/binding.
>
> So I'd like to get input on whether we make this change today (for 3.6)
> and merge Configuration+AnnotationConfiguation into a single class[1],
> or if we push this back until 4.x when we begin the rest of the
> configuration changes.
>
>
> [1] Really the intent is move methods/fields from AnnotationConfiguation
> up to Configuation and deprecate AnnotationConfiguation. That way
> existing code can, for s short time, continue to use
> AnnotationConfiguration without change.
>
>
> --
> Steve Ebersole <steve at hibernate.org>
> http://hibernate.org
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
More information about the hibernate-dev
mailing list