On Mon, Sep 1, 2008 at 1:16 PM, Rickard Öberg <[EMAIL PROTECTED]> wrote:
> Alin Dreghiciu wrote:
>> On Mon, Sep 1, 2008 at 12:43 PM, Rickard Öberg <[EMAIL PROTECTED]> wrote:
>> To express the query will not be a problem as you can say (for example
>> in issue):
>>
>> QueryBuilder<Person> qb = qbf.newQueryBuilder( Abc.class );
>> Abc abc = templateFor( Abc.class );
>> qb.where(
>>   eq( abc.def().get().value(), 10 )
>> );
>> Query<Abc> query = qb.newQuery();
>>
>> Note that this is not supported right now (an exception is thrown)
>
> Oh, now I get it. It's not related to assocs, but properties with
> complex values. My brain got it all mixed up. Right.
>
> Well, to index the state should be reasonably easy. We will have to
> extend the EntityType to refer to ValueTypes though, in order to
> encapsulate the "schema" properly.
>
>>>> * is it supported by EntityStores ?
>>> I thought this was a query issue only..?
>>
>> My question was if entity stores supports this kind of properties.
>
> Right, gotcha. There's nothing that says it can't work, but there's also
> nothing that explicitly says that it must work. I'm not really sure what
> the best way to do it is. As Niclas pointed out in the issue text, it
> may open a whole can of worms...
>
> Would it be possible to do a test and see what happens?

On a test I made using the memory entity store I got the NPE we
discussed about by chat.

java.lang.NullPointerException
        at 
org.qi4j.spi.serialization.CompositeInputStream.resolveObject(CompositeInputStream.java:88)
        at java.io.ObjectInputStream.checkResolve(ObjectInputStream.java:1352)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
        at 
org.qi4j.spi.serialization.SerializedComposite.readObject(SerializedComposite.java:74)
        at 
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
        at java.util.HashMap.readObject(HashMap.java:1067)
        at 
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
        at 
org.qi4j.spi.serialization.SerializedObject.getObject(SerializedObject.java:81)
        at 
org.qi4j.entity.memory.MemoryEntityStoreMixin.getEntityState(MemoryEntityStoreMixin.java:90)
        at org.qi4j.spi.entity.EntityStore.getEntityState(Unknown Source)
        at 
org.qi4j.entity.memory.ConcurrentModificationCheckConcern.getEntityState(ConcurrentModificationCheckConcern.java:53)
        at 
org.qi4j.entity.memory.MemoryEntityStoreService.getEntityState(Unknown
Source)
        at 
org.qi4j.runtime.entity.EntityModel.getEntityState(EntityModel.java:297)
        at 
org.qi4j.runtime.entity.EntityInstance.invoke(EntityInstance.java:168)
        at 
org.qi4j.runtime.composite.CompositeMethodModel.invoke(CompositeMethodModel.java:96)
        at 
org.qi4j.runtime.composite.CompositeMethodsModel.invoke(CompositeMethodsModel.java:75)
        at org.qi4j.runtime.entity.EntityModel.invoke(EntityModel.java:202)
        at org.qi4j.runtime.entity.EntityInstance.invoke(EntityInstance.java:99)
        at $Proxy16.name(Unknown Source)
        at 
org.qi4j.entity.index.rdf.RdfQueryTest.verifyUnorderedResults(RdfQueryTest.java:131)
        at 
org.qi4j.entity.index.rdf.RdfQueryTest.script01(RdfQueryTest.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
        at 
org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
        at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
        at 
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
        at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
        at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
        at 
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
        at 
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
        at 
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
        at 
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
        at 
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
        at 
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
        at com.intellij.rt.junit4.Junit4ClassSuite.run(Junit4ClassSuite.java:99)
        at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)

>
> /Rickard
>
>
> _______________________________________________
> qi4j-dev mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/qi4j-dev
>



-- 
Alin Dreghiciu
http://www.ops4j.org - New Energy for OSS Communities - Open
Participation Software.
http://www.qi4j.org - New Energy for Java - Domain Driven Development.
http://malaysia.jayway.net - New Energy for Projects - Great People
working on Great Projects at Great Places

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to