We are running webservices which get called to populate and update our database, in one of the functions an EntityReactionType get's filled by the caller of the webservice with the ID's.
EntityReactionType has a composite many-to-one key consisting of Entity and (suprise) ReactionType.
These ID's get filled with the right values and i then want to refresh the object from the database in order to check some values which are set in the database but the user has no knowledge of. In this case: IsStart and IsClosing.
I do all this with the following code: (it's a simplified snipped but the idea should be clear)
I can see the refresh executing the SQL, which is correct and shows that this has IsStart = False and IsClosing = True.
Yet when i look at the object values after the Refresh IsStart = null and IsClosing = False;
//entityReactionTypeRepository.Merge(reaction.EntityReactionType);
entityReactionTypeRepository.Refresh(reaction.EntityReactionType);
if (reaction.IsResolved == true || reaction.EntityReactionType.CloseDispute == true)
{
reaction.IsResolved = true;
reaction.Invoice.IsDisputed = false;
}
I have the Merge line commented out since that is something i found while searching google but changed nothing (idea was that you can't refresh something that isn't transistant but nothing changed, SQL get's executed eitherway but the values do not get updated)
I'm close to making a work around at this time that just creates a detachedcriteria and executes that but i know this should be possible like this.
Greetings,
Folkert