[rules-users] Drools Flow: Variable Persistence Strategies
Dale Wyttenbach
dale.wyttenbach at gmail.com
Sat Feb 13 09:59:42 EST 2010
Please see attached.
2010/2/12 Mauricio Salatino <salaboy at gmail.com>
> I just want to make sure before apply the patch that the change will not
> impact in other places.
> Thanks
>
>
> On Fri, Feb 12, 2010 at 5:38 PM, Mauricio Salatino <salaboy at gmail.com>wrote:
>
>> can you post both, previous and new, sql schema generated for the
>> VariableInstanceInfo and ProcessInstanceInfo tables?
>>
>>
>>
>> 2010/2/12 Dale Wyttenbach <dale.wyttenbach at gmail.com>
>>
>>> If you try to write a query that requires VariableInstanceInfo.processId,
>>> it won't work because that class has no processId member.
>>> I guessed that processInstanceId would be a better join column, and that
>>> worked (patch attached)
>>>
>>> Thanks for the reply.
>>>
>>> 2010/2/12 Mauricio Salatino <salaboy at gmail.com>
>>>
>>> Hmm..
>>>> I'm looking at the source and I see the following mapping:
>>>>
>>>> @OneToMany(cascade = CascadeType.ALL)
>>>> @JoinColumn(name = "processId")
>>>> @MapKey(name = "name")
>>>> private Map<String, VariableInstanceInfo> variables = new
>>>> HashMap<String, VariableInstanceInfo>();
>>>>
>>>> That makes me think that there is a join column called processId between
>>>> VariableInstanceInfo and ProcessInstanceInfo.
>>>>
>>>>
>>>> 2010/2/12 Dale Wyttenbach <dale.wyttenbach at gmail.com>
>>>>
>>>>> I have a patch for drools-persistence-jpa should anyone agree with me
>>>>> that ProcessInstanceInfo and VariableInstanceInfo should be joined by
>>>>> processInstanceId.
>>>>>
>>>>>
>>>>> On Fri, Feb 12, 2010 at 10:52 AM, Dale Wyttenbach <
>>>>> dale.wyttenbach at gmail.com> wrote:
>>>>>
>>>>>> I'm trying to adapt the StringVariablePersister presented in
>>>>>> http://blog.athico.com/2009/09/drools-flow-variable-persistence.html
>>>>>>
>>>>>> <http://blog.athico.com/2009/09/drools-flow-variable-persistence.html>I
>>>>>> can create process instances with variable "color":
>>>>>>
>>>>>> private static WorkflowProcessInstance
>>>>>> startProcess(StatefulKnowledgeSession ksession, String color) {
>>>>>> Map<String, Object> vars = new HashMap<String, Object>();
>>>>>> vars.put("color", color);
>>>>>> WorkflowProcessInstance p1 = (WorkflowProcessInstance)
>>>>>> ksession.startProcess("com.sample.ruleflow", vars);
>>>>>> return p1;
>>>>>> }
>>>>>>
>>>>>> I can count them:
>>>>>>
>>>>>> select
>>>>>> count(*)
>>>>>> from
>>>>>> ProcessInstanceInfo
>>>>>>
>>>>>> However I'm stymied as to counting process instances with a given
>>>>>> color, as there appears to be no join column between ProcessInstanceInfo and
>>>>>> VariableInstanceInfo.
>>>>>> Can such a query be written?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> rules-users mailing list
>>>>> rules-users at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> - http://salaboy.wordpress.com
>>>> - http://www.jbug.com.ar
>>>> - Salatino "Salaboy" Mauricio -
>>>>
>>>> _______________________________________________
>>>> rules-users mailing list
>>>> rules-users at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>
>>
>> --
>> - http://salaboy.wordpress.com
>> - http://www.jbug.com.ar
>> - Salatino "Salaboy" Mauricio -
>>
>
>
>
> --
> - http://salaboy.wordpress.com
> - http://www.jbug.com.ar
> - Salatino "Salaboy" Mauricio -
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100213/485cc1a3/attachment.html
-------------- next part --------------
CREATE CACHED TABLE PUBLIC.PROCESSINSTANCEINFO(
PROCESSINSTANCEID BIGINT DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_FF1EE4DE_C35A_4E45_8E86_7B2AFEA25E22) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_FF1EE4DE_C35A_4E45_8E86_7B2AFEA25E22,
EXTERNALVARIABLES BIT NOT NULL,
LASTMODIFICATIONDATE TIMESTAMP,
LASTREADDATE TIMESTAMP,
PROCESSID VARCHAR(255),
PROCESSINSTANCEBYTEARRAY BLOB,
STARTDATE TIMESTAMP,
STATE INTEGER NOT NULL,
OPTLOCK INTEGER
);
CREATE CACHED TABLE PUBLIC.VARIABLEINSTANCEINFO(
TYPE VARCHAR(50) NOT NULL,
ID BIGINT DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_A04A594E_9B73_4411_A586_B5508072FC77) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_A04A594E_9B73_4411_A586_B5508072FC77,
NAME VARCHAR(255),
PERSISTER VARCHAR(255),
ENTITYCLASS VARCHAR(255),
ENTITYID BINARY(255),
CONTENT BLOB,
PROCESSID BIGINT
);
-------------- next part --------------
CREATE CACHED TABLE PUBLIC.PROCESSINSTANCEINFO(
PROCESSINSTANCEID BIGINT DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_5B91E503_97C1_4A5C_8986_3AFEEB7A5BD6) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_5B91E503_97C1_4A5C_8986_3AFEEB7A5BD6,
EXTERNALVARIABLES BIT NOT NULL,
LASTMODIFICATIONDATE TIMESTAMP,
LASTREADDATE TIMESTAMP,
PROCESSID VARCHAR(255),
PROCESSINSTANCEBYTEARRAY BLOB,
STARTDATE TIMESTAMP,
STATE INTEGER NOT NULL,
OPTLOCK INTEGER
);
CREATE CACHED TABLE PUBLIC.VARIABLEINSTANCEINFO(
TYPE VARCHAR(50) NOT NULL,
ID BIGINT DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_0F46702F_0A40_4EEF_81D9_E979C37CAB85) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_0F46702F_0A40_4EEF_81D9_E979C37CAB85,
NAME VARCHAR(255),
PERSISTER VARCHAR(255),
PROCESSINSTANCEID BIGINT,
ENTITYCLASS VARCHAR(255),
ENTITYID BINARY(255),
CONTENT BLOB
);
More information about the rules-users
mailing list