[rules-users] Update vs insert

Ingomar Otter iotter at mac.com
Thu Sep 11 06:52:48 EDT 2008


Ehm, I would think that unless person implements a  
PropertyChangeListener, you need to tell the engine about the change  
of the slot.
Update would be the proper way AFAIK.

In this case, I don't see why one would  want to insert an object into  
WM - as it is already in WM.
I think the exact result of the insert depends on whether you have  
implemented equals/hashCode properly.
But again, in that example I understand that you want to change the  
property of an object you have matched  in the LHS.
The way to do this is using update().

-- Ingomar

Am 11.09.2008 um 12:39 schrieb Shyam, Pallav (MSCIBARRA):

> Very strange. The facts are passed into the WM by-reference.  
> Therefore the query should work after calling the  
> person.setClassName("Math") on the fact. And this should work  
> without calling the insert or update.
>
> This leaves me guessing that the query does not work on the facts  
> directly, instead they work on shadow facts.
>
>
>
>
> ________________________________
>
> From: rules-users-bounces at lists.jboss.org
> To: Rules Users List
> Sent: Thu Sep 11 04:41:37 2008
> Subject: [rules-users] Update vs insert
>
>
> Hello,
>
>   What is the difference between calling insert and update in a rule  
> file? When I use insert my queries don’t work, but if I use update  
> they seem to. I don't mind using update, but I would like to  
> understand the difference between the two. Here is my rule file.
>
>    rule "Add person to math class"
>    no-loop
>        when
>            person : Person(likesMath == true)
>        then
>            person.setClassName("Math");
>            insert(person);
>    end
>
>   I also have a query:
>
>   query getPeopleForClass(String _className)
>      Person(className == _className)
>   end
>
>   When I add two facts to working memory, where the likesMath  
> attribute is true, then run my query I get zero results back. When I  
> change the rule, "Add person to math class", to use update(person)  
> instead of insert(person) two students are returned.
>
>  Any help would be appreciated.
>
> Thanks,
> Dan
>
>
> Daniel Quinn
> Fedex - Custom Critical
> Software Specialist I
> 234.310.4090(x2586)
>
> -----Original Message-----
> From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org 
>  <mailto:rules-users-bounces at lists.jboss.org> ] On Behalf Of thomaskukofka at web.de
>
> Sent: Wednesday, September 10, 2008 2:27 PM
> To: rules-users at lists.jboss.org
> Subject: [rules-users] Re: looping problem
>
> Hello,
>
> thanks that works. I just forgot to set the focus in the init rule..
>
> Regards
> Thomas
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users <https://lists.jboss.org/mailman/listinfo/rules-users 
> >
> --------------------------------------------------------
>
> NOTICE: If received in error, please destroy and notify sender.  
> Sender does not intend to waive confidentiality or privilege. Use of  
> this email is prohibited when received in error.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users





More information about the rules-users mailing list