Hello!

You colud configure NH to only update-insert necessary columns that
have been changed.
See http://nhforge.org/doc/nh/en/index.html#mapping-declaration-class

In detached scenario when you have a entity not attached to session it
is possible to use select-before-update
see link above as well.

For the second one
see http://nhforge.org/doc/nh/en/index.html#mapping-generated
or you could use the Refresh method of ISession.

I think you could use the generated attribute for the last as well,
but I am not sure.
There is another option to use a Interceptor to alter the generated
insert statement in runtime.
see http://nhforge.org/doc/nh/en/index.html#manipulatingdata-interceptors

On Dec 5, 8:20 pm, Erik Wilson <[email protected]> wrote:
> Hello, I am considering using nhibernate in my project, but I have
> some questions about the way it works that I was hoping someone could
> answer.
>
> First, when an update operation is performed, does it update all
> fields in the entity, or only the changed fields?  I ask, because the
> database I have to use (and I don't control it's format, nor can I
> change it in any way) has a number of triggers that operate on the
> updated data (such as logging).  So an UPDATE foo SET bar=1, zoo=2
> would log both bar and zoo, even if the value of 2 hadn't actually
> changed.  Linq2Sql only updates the fields that have chaned, and I was
> curious if nh did the same.
>
> Second, and again this is an issue because of triggers in the
> database, I have a table that when a new record is inserted, the
> trigger automatically inserts records in other (child) tables and
> makes the table a foreign key.  This ensures that all tables have
> default records if a parent record exists.  Consider this as something
> akin to inheritence where there's a common set of data, and depending
> on a discriminator other tables are used in a given entity.  For
> example, if you had a person table, and an employee table that used
> person as a foriegn key.
>
> I understand how to make the employee table use the two tables via a
> discriminator.  My concern that when a new employee is created, only a
> person is created, and a default employee record gets created
> automatically by the trigger if it's personType field is "employee".
>
> How exactly would nh deal with this situation?  I would be creating an
> entity which joins the parent and child tables into a single entity,
> but when I create a new entity it would need to only create the sql to
> create the parent (since the children get created automatically).
> does nh have support for this, or would I have to issue my create sql
> seperately?

--

You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.


Reply via email to