Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NHibernate Interceptor - What is it

What is NHibernate Interceptor, and what purpose does it serve in an application?

Also, in this article, I learned that using NHibernate makes a desktop application slower at startup, so to avoid this, I need to save the configuration in a file, and later load it from the saved file. How can I do that? I didn't find any examples in that tutorial.

like image 986
MD Sayem Ahmed Avatar asked Jan 09 '10 16:01

MD Sayem Ahmed


3 Answers

An interceptor allows you to execute additional functionality when an entity is retrieved / deleted / updated / inserted in the DB ...

Interceptors article

Hibernate doc

other useful info

About making your app slower: I'd suggest that you only have a look at optimizing start-up time, when it really becomes a problem.

When you build a session-factory, NHibernate will parse all the mappings, and that is an operation that is a bit expensive. But, as long as you have a limited number of entities, the performance hit isn't that big.
I have never ever had to optimize the initialization of NHibernate, because of slow startup times.

I'd suggest that you first concentrate on the core of your application -the problem you're trying to solve- and afterwards have a look on how you could improve startup performance. (If you'll ever have to do it).

like image 135
Frederik Gheysels Avatar answered Oct 14 '22 05:10

Frederik Gheysels


Interceptors, like the name itself says, allows you to intercept NHibernate operations (save/update/delete/load/flush/etc).

A newer, more flexible API to achieve this is the event system.

About serializing the configuration, the code is there, it's the class Effectus.Infrastructure.BootStrapper which is called at application startup.

like image 20
Mauricio Scheffer Avatar answered Oct 14 '22 05:10

Mauricio Scheffer


An interceptor's dissection series written by me can be found in here http://blog.scooletz.com/2011/02/03/nhibernate-interceptor-magic-tricks-pt-1/

hope it helps

like image 20
Scooletz Avatar answered Oct 14 '22 06:10

Scooletz