我正在尝试此 JPA 查询"SELECT ml FROM MediaLibrary ml WHERE ml.media.id = :id"
,但收到此错误消息:"Cannot find type of (part of) ml.media.id since symbol has no type; implicit variable?"
我意识到这可能应该是某种MEMBER OF
查询,但我尝试了相同的结果。我正在寻找包含 id 等于给定值的媒体的媒体库。
简化代码:
@Entity( name = "MediaLibrary" )
@Table( name = "MediaLibrary" )
public class MediaLibrary implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String mediaLibraryKey;
@Embedded
private Set<Media> media;
....
@Embeddable
public class Media implements GenericDataProducer, CreationDateKnown, Serializable {
private static final long serialVersionUID = 1L;
@Column
private String id;
....
我的 Mongo 数据看起来和我预期的一样:
db.MediaLibrary.find().pretty();
{
"_id" : ObjectId("51bcb440b3060638e5890581"),
....
"media" : [
{
....
"id" : "f0f9b014-24b1-4408-b0aa-3c9f74c822f8",
....
}
]
}
更新:工作命令行 mongodb 查询是这样的:
db.MediaLibrary.find( { "media" : { $elemMatch : { "id" : "f0f9b014-24b1-4408-b0aa-3c9f74c822f8" } } } );
或在java中:
new BasicDBObject( "media", new BasicDBObject( "$elemMatch", new BasicDBObject("id", id) ) );
更新:另一个查询:"SELECT ml FROM MediaLibrary ml WHERE :id MEMBER OF ml.media.id"
并在 FINE 级别输出:
FINE:JPQL 单字符串,带有“SELECT ml FROM MediaLibrary ml WHERE :id MEMBER OF ml.media.id” 2013 年 6 月 16 日下午 12:47:04 org.datanucleus.store.query.AbstractJPQLQuery compileInternal FINE:JPQL 查询:编译“SELECT ml FROM MediaLibrary ml WHERE:id MEMBER OF ml.media.id” 2013 年 6 月 16 日下午 12:47:04 com.xonami.rest.server.MyServerResource 日志 严重:com.xonami.rest.server.media.MediaStateNoIdResource 在日志中: org.datanucleus.exceptions.NucleusUserException:找不到类型(部分)ml.media.id,因为符号没有类型;隐式变量?:找不到(部分)ml.media.id 的类型,因为符号没有类型;隐式变量? 在 org.datanucleus.query.expression.PrimaryExpression.bind (PrimaryExpression.java: 274) 在 org.datanucleus.query.expression.InvokeExpression.bind (InvokeExpression.java: 97) 在 org.datanucleus.query.compiler.JavaQueryCompiler.compileFilter (JavaQueryCompiler.java: 475) 在 org.datanucleus.query.compiler.JPQLCompiler.compile (JPQLCompiler.java: 81) 在 org.datanucleus.store.query.AbstractJPQLQuery.compileInternal (AbstractJPQLQuery.java: 271) 在 org.datanucleus.store.mongodb.query.JPQLQuery.compileInternal (JPQLQuery.java: 163) 在 org.datanucleus.store.query.Query.setImplicitParameter (Query.java: 811) 在 org.datanucleus.api.jpa.JPAQuery.setParameter (JPAQuery.java: 438) 在 org.datanucleus.api.jpa.JPAQuery.setParameter (JPAQuery.java: 58) 在 com.xonami.rest.cache.DataFetcher.getMediaById (DataFetcher.java: 205)
更新
查询:SELECT ml FROM MediaLibrary ml, Media m WHERE m MEMBER OF ml.media AND m.id = :id
2013 年 6 月 17 日上午 11:54:00 org.datanucleus.query.JPQLSingleStringParser FINE:JPQL 单字符串,带有“从 MediaLibrary ml 中选择 ml,Media m WHERE m MEMBER OF ml.media AND m.id = :id” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.query.AbstractJPQLQuery compileInternal FINE:JPQL 查询:编译“SELECT ml FROM MediaLibrary ml, Media m WHERE m MEMBER OF ml.media AND m.id = :id” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.query.AbstractJPQLQuery compileInternal FINE:JPQL 查询:编译时间 = 2 毫秒 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.query.AbstractJPQLQuery compileInternal 精细:查询编译: [来自:ClassExpression(别名=ml),ClassExpression(别名=m)] [过滤器:DyadicExpression{InvokeExpression{[PrimaryExpression{ml.media}].contains(PrimaryExpression{m})} AND DyadicExpression{PrimaryExpression{m.id} = ParameterExpression{id}}}] [符号:id type=java.lang.String,m type=com.xonami.rest.db.Media,ml type=com.xonami.rest.db.MediaLibrary] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.JPQLQuery compileQueryFull FINE:JPQL 查询:为数据存储编译“SELECT ml FROM MediaLibrary ml, Media m WHERE m MEMBER OF ml.media AND m.id = :id” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.QueryToMongoDBMapper compileFilter FINE:无法编译要在数据存储中完全评估的过滤器:此映射器不支持调用表达式 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.JPQLQuery compileQueryFull FINE:JPQL 查询:数据存储的编译时间 = 0 毫秒 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.query.AbstractJPQLQuery compileInternal FINE:JPQL 查询:编译“SELECT FROM MediaLibrary ml, Media m WHERE m MEMBER OF ml.media AND m.id = :id” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.util.Imports resolveClassDeclaration FINE:MediaLibrary 类被解析为 com.xonami.rest.db.MediaLibrary。它没有完全限定,因此必须查找;您可以通过完全限定查询中的类来避免查找(并提高性能)。 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.util.Imports resolveClassDeclaration FINE:Class Media 被解析为 com.xonami.rest.db.Media。它没有完全限定,因此必须查找;您可以通过完全限定查询中的类来避免查找(并提高性能)。 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.query.AbstractJPQLQuery compileInternal FINE:JPQL 查询:编译时间 = 1 毫秒 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.query.AbstractJPQLQuery compileInternal 精细:查询编译: [来自:ClassExpression(别名=ml),ClassExpression(别名=m)] [过滤器:DyadicExpression{InvokeExpression{[PrimaryExpression{ml.media}].contains(PrimaryExpression{m})} AND DyadicExpression{PrimaryExpression{m.id} = ParameterExpression{id}}}] [符号:id type=java.lang.String,m type=com.xonami.rest.db.Media,ml type=com.xonami.rest.db.MediaLibrary] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.JPQLQuery compileQueryFull FINE:JPQL 查询:为数据存储编译“SELECT FROM MediaLibrary ml, Media m WHERE m MEMBER OF ml.media AND m.id = :id” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.QueryToMongoDBMapper compileFilter FINE:无法编译要在数据存储中完全评估的过滤器:此映射器不支持调用表达式 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.JPQLQuery compileQueryFull FINE:JPQL 查询:数据存储的编译时间 = 0 毫秒 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.connection.ConnectionManagerImpl allocateConnection FINE:连接添加到池中:org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=null, commitOnRelease=true, closeOnRelease=true, closeOnTxnEnd=false] for key=org.datanucleus.ExecutionContextImpl@519549e 在工厂=ConnectionFactory:tx[org.datanucleus.store.mongodb.ConnectionFactoryImpl@4fb7a553] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl 获得NewConnection FINE:托管连接 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=com.mongodb.DBApiLayer@61ffbcb, commitOnRelease=true, closeOnRelease=true, closeOnTxnEnd=false] 正在启动 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.JPQLQuery performExecute FINE:JPQL 查询:执行“SELECT FROM MediaLibrary ml, Media m WHERE m MEMBER OF ml.media AND m.id = :id” ... 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.MongoDBUtils getObjectsOfCandidateType FINE:使用对集合 MediaLibrary 的查询执行 find() for fields={ "mediaLibraryKey" : 1 , "owner" : 1 , "projectKey" : 1 , "quota" : 1} with filter={ } 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.LazyLoadQueryResult 关闭连接 信息:读入查询“SELECT FROM MediaLibrary ml, Media m WHERE m MEMBER OF ml.media AND m.id = :id”的结果,因为使用的连接正在关闭 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl getObjectFromLevel1Cache 精细:对象“com.xonami.rest.db.MediaLibrary@774943d6”(id="com.xonami.rest.db.MediaLibrary:51bf3116b306d15598ec06c6")取自 1 级缓存 (loadedFlags="[NYYYY]") [缓存大小= 5] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.query.evaluator.JavaQueryEvaluator 执行 FINE:JPQL 查询:使用内存评估处理“过滤器”子句(clause = "DyadicExpression{InvokeExpression{[PrimaryExpression{ml.media}].contains(PrimaryExpression{m})} AND DyadicExpression{PrimaryExpression{m.id} = 参数表达式{id}}}") 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.query.evaluator.JavaQueryEvaluator handleFilter FINE:为 1 个候选人评估过滤器 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.connection.ConnectionManagerImpl allocateConnection FINE:在池中找到连接:org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=com.mongodb.DBApiLayer@61ffbcb, commitOnRelease=true, closeOnRelease=true, closeOnTxnEnd=false] for key=org.datanucleus .ExecutionContextImpl@519549e in factory=ConnectionFactory:tx[org.datanucleus.store.mongodb.ConnectionFactoryImpl@4fb7a553] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.MongoDBPersistenceHandler fetchObject FINE:获取对象“com.xonami.rest.db.MediaLibrary@774943d6”(id=51bf3116b306d15598ec06c6)字段[媒体] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.MongoDBPersistenceHandler fetchObject FINE:从 MongoDB 检索对象“com.xonami.rest.db.MediaLibrary@774943d6”(id="51bf3116b306d15598ec06c6") 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.MongoDBUtils getObjectForObjectProvider FINE:检索对象 { "_id" : { "$oid" : "51bf3116b306d15598ec06c6"}} 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl putObjectIntoLevel1Cache FINE:对象“com.xonami.rest.db.Media@64afb650”(id="org.datanucleus.identity.IdentityReference@44cae5b8")添加到 1 级缓存(loadedFlags="[NNNNNNNNNNN]") 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField 精细:对象“com.xonami.rest.db.Media@64afb650”(id="")的字段“应用程序”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.types.simple.ArrayList 初始化 FINE:使用 options="cached,allowNulls" 为对象“com.xonami.rest.db.Media@64afb650”字段“applications”创建 SCO 包装器,包含 1 个条目 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")的字段“cTime”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField 精细:对象“com.xonami.rest.db.Media@64afb650”(id="")的字段“mediaStates”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.types.simple.ArrayList 初始化 FINE:使用 options="cached,allowNulls" 为对象“com.xonami.rest.db.Media@64afb650”字段“mediaStates”创建 SCO 包装器,包含 0 个条目 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField 精细:对象“com.xonami.rest.db.Media@64afb650”(id="")的字段“projectVLists”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.types.simple.ArrayList 初始化 FINE:使用 options="cached,allowNulls" 为对象“com.xonami.rest.db.Media@64afb650”字段“projectVLists”创建 SCO 包装器,包含 0 个条目 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")的字段“propertyKeys”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.types.simple.ArrayList 初始化 FINE:使用 options="cached,allowNulls" 为对象“com.xonami.rest.db.Media@64afb650”字段“propertyKeys”创建 SCO 包装器,包含 2 个条目 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")的字段“propertyValues”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.types.simple.ArrayList 初始化 FINE:使用 options="cached,allowNulls" 为对象“com.xonami.rest.db.Media@64afb650”字段“propertyValues”创建 SCO 包装器,包含 2 个条目 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")的字段“searchList”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.types.simple.ArrayList 初始化 FINE:使用 options="cached,allowNulls" 为对象“com.xonami.rest.db.Media@64afb650”字段“searchList”创建 SCO 包装器,包含 6 个条目 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")的字段“tags”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.types.simple.ArrayList 初始化 FINE:使用 options="cached,allowNulls" 为对象“com.xonami.rest.db.Media@64afb650”字段“tags”创建 SCO 包装器,包含 2 个条目 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager wrapSCOField FINE:对象“com.xonami.rest.db.MediaLibrary@774943d6”(id="com.xonami.rest.db.MediaLibrary:51bf3116b306d15598ec06c6")的字段“media”中的值被 SCO 包装器替换 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.types.simple.HashSet 初始化 FINE:使用 options="cached,allowNulls" 为对象“com.xonami.rest.db.MediaLibrary@774943d6”字段“media”创建 SCO 包装器,包含 1 个条目 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.MongoDBPersistenceHandler fetchObject 精细:执行时间 = 4 毫秒 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl 发布 FINE:托管连接 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=com.mongodb.DBApiLayer@61ffbcb, commitOnRelease=true, closeOnRelease=false, closeOnTxnEnd=false] 正在提交 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl 发布 FINE:托管连接 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=com.mongodb.DBApiLayer@61ffbcb, commitOnRelease=true, closeOnRelease=false, closeOnTxnEnd=false] 提交的连接 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.AbstractStateManager updateLevel2CacheForFields 精细:对象“com.xonami.rest.db.MediaLibrary@774943d6”(id="51bf3116b306d15598ec06c6")正在更新二级缓存对象中的以下字段:[0] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.query.evaluator.memory.InMemoryExpressionEvaluator getValueForPrimaryExpression 严重:找不到 com.xonami.rest.db.MediaLibrary 的 m 成员 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.query.evaluator.memory.InMemoryExpressionEvaluator getValueForPrimaryExpression 严重:找不到 com.xonami.rest.db.MediaLibrary 的 m 成员 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.query.JPQLQuery performExecute FINE:JPQL 查询:执行时间 = 9 毫秒 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl 发布 FINE:托管连接 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=com.mongodb.DBApiLayer@61ffbcb, commitOnRelease=true, closeOnRelease=false, closeOnTxnEnd=false] 正在提交 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl 发布 FINE:托管连接 org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=com.mongodb.DBApiLayer@61ffbcb, commitOnRelease=true, closeOnRelease=false, closeOnTxnEnd=false] 提交的连接 2013 年 6 月 17 日上午 11:54:00 com.xonami.rest.LogWrapper 日志 信息:未找到。 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl performDetachOnClose FINE:DetachOnClose:关闭管理器,分离所有当前对象...... 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 分离 FINE:从持久性中分离对象:“com.xonami.rest.db.ProjectLibrary@9ec265c”(深度=0) 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField 精细:对象“com.xonami.rest.db.ProjectLibrary@9ec265c”(id="com.xonami.rest.db.ProjectLibrary:51bf3116b306d15598ec06c5")正在将字段“ownedProjects”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 分离 FINE:从持久性中分离对象:“com.xonami.rest.db.XonamiUser@397b6178”(深度=1) 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“creationDate”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 分离 FINE:从持久性中分离对象:“com.xonami.rest.db.EmailAddress@131b92e6”(深度=2) 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.EmailAddress@131b92e6”(id="com.xonami.rest.db.EmailAddress:51bf3117b306d15598ec06c8")将字段“created”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.LifeCycleState changeState FINE:对象“com.xonami.rest.db.EmailAddress@131b92e6”(id="com.xonami.rest.db.EmailAddress:51bf3117b306d15598ec06c8")有一个生命周期变化:“P_NONTRANS”->“DETACHED_CLEAN” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 断开连接 FINE:从 StateManager 断开 com.xonami.rest.db.EmailAddress@131b92e6 [pc=com.xonami.rest.db.EmailAddress@131b92e6,lifecycle=DETACHED_CLEAN] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl removeObjectFromLevel1Cache FINE:从 1 级缓存中删除 id="com.xonami.rest.db.EmailAddress:51bf3117b306d15598ec06c8" 的对象 [当前缓存大小 = 6] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“emails”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 分离 FINE:从持久性中分离对象:“com.xonami.rest.db.MediaLibrary@774943d6”(深度=2) 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 分离 FINE:从持久性中分离对象:“com.xonami.rest.db.Media@64afb650”(深度=2) 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField 精细:对象“com.xonami.rest.db.Media@64afb650”(id="")正在将字段“应用程序”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")将字段“cTime”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")将字段“mediaStates”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField 精细:对象“com.xonami.rest.db.Media@64afb650”(id="")将字段“projectVLists”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")将字段“propertyKeys”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")将字段“propertyValues”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField 精细:对象“com.xonami.rest.db.Media@64afb650”(id="")正在将字段“searchList”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.Media@64afb650”(id="")将字段“tags”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.LifeCycleState changeState FINE:对象“com.xonami.rest.db.Media@64afb650”(id="org.datanucleus.identity.IdentityReference@44cae5b8")有生命周期变化:“P_CLEAN”->“DETACHED_CLEAN” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl evictFromTransaction FINE:对象“com.xonami.rest.db.Media@64afb650”(id="org.datanucleus.identity.IdentityReference@44cae5b8")被从事务缓存中驱逐 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl evictFromTransaction FINE:对象“com.xonami.rest.db.Media@64afb650”(id="org.datanucleus.identity.IdentityReference@44cae5b8")不是事务性的 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 断开连接 FINE:从 StateManager 断开 com.xonami.rest.db.Media@64afb650 [pc=com.xonami.rest.db.Media@64afb650,生命周期=DETACHED_CLEAN] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl removeObjectFromLevel1Cache FINE:从 1 级缓存中删除 id="org.datanucleus.identity.IdentityReference@44cae5b8" 的对象 [当前缓存大小 = 5] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField 精细:对象“com.xonami.rest.db.MediaLibrary@774943d6”(id="com.xonami.rest.db.MediaLibrary:51bf3116b306d15598ec06c6")将字段“媒体”中的 SCO 包装器替换为未包装的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.LifeCycleState changeState 精细:对象“com.xonami.rest.db.MediaLibrary@774943d6”(id="com.xonami.rest.db.MediaLibrary:51bf3116b306d15598ec06c6")具有生命周期变化:“P_NONTRANS”->“DETACHED_CLEAN” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 断开连接 FINE:从 StateManager 断开 com.xonami.rest.db.MediaLibrary@774943d6 [pc=com.xonami.rest.db.MediaLibrary@774943d6,lifecycle=DETACHED_CLEAN] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl removeObjectFromLevel1Cache FINE:从 1 级缓存中删除 id="com.xonami.rest.db.MediaLibrary:51bf3116b306d15598ec06c6" 的对象 [当前缓存大小 = 4] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“mediaLibraries”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 分离 FINE:从持久性中分离对象:“com.xonami.rest.db.payment.PaymentInfo@6b04d3c8”(深度=2) 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.LifeCycleState changeState FINE:对象“com.xonami.rest.db.payment.PaymentInfo@6b04d3c8”(id="com.xonami.rest.db.payment.PaymentInfo:51bf3116b306d15598ec06c7")具有生命周期变化:“P_NONTRANS”->“DETACHED_CLEAN” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 断开连接 FINE:从 StateManager 断开 com.xonami.rest.db.payment.PaymentInfo@6b04d3c8 [pc=com.xonami.rest.db.payment.PaymentInfo@6b04d3c8,lifecycle=DETACHED_CLEAN] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl removeObjectFromLevel1Cache FINE:从 1 级缓存中删除 id="com.xonami.rest.db.payment.PaymentInfo:51bf3116b306d15598ec06c7" 的对象 [当前缓存大小 = 3] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“paymentInfos”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField 精细:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“projectLibraries”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“propertyKeys”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“propertyValues”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“searchList”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager unwrapSCOField FINE:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")在字段“tags”中有 SCO 包装器" 替换为展开的值 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.LifeCycleState changeState 精细:对象“com.xonami.rest.db.XonamiUser@397b6178”(id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5")具有生命周期变化:“P_NONTRANS”- >“DETACHED_CLEAN” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 断开连接 FINE:从 StateManager 断开 com.xonami.rest.db.XonamiUser@397b6178 [pc=com.xonami.rest.db.XonamiUser@397b6178,生命周期=DETACHED_CLEAN] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl removeObjectFromLevel1Cache FINE:从 1 级缓存中删除 id="com.xonami.rest.db.XonamiUser:8f677878-ebde-4774-9604-5f78ba4844a5" 的对象 [当前缓存大小 = 2] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.LifeCycleState changeState FINE:对象“com.xonami.rest.db.ProjectLibrary@9ec265c”(id="com.xonami.rest.db.ProjectLibrary:51bf3116b306d15598ec06c5")有一个生命周期变化:“P_NONTRANS”->“DETACHED_CLEAN” 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.state.JDOStateManager 断开连接 FINE:从 StateManager 断开 com.xonami.rest.db.ProjectLibrary@9ec265c [pc=com.xonami.rest.db.ProjectLibrary@9ec265c,生命周期=DETACHED_CLEAN] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl removeObjectFromLevel1Cache FINE:从 1 级缓存中删除 id="com.xonami.rest.db.ProjectLibrary:51bf3116b306d15598ec06c5" 的对象 [当前缓存大小 = 1] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl performDetachOnClose FINE: DetachOnClose : 完成分离 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.connection.ConnectionManagerImpl closeAllConnections FINE:在池中找到连接:org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=com.mongodb.DBApiLayer@61ffbcb, commitOnRelease=true, closeOnRelease=false, closeOnTxnEnd=false] for key=org.datanucleus .ExecutionContextImpl@519549e in factory=ConnectionFactory:tx[org.datanucleus.store.mongodb.ConnectionFactoryImpl@4fb7a553] 但所有者对象关闭所以关闭连接 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.store.connection.ConnectionManagerImpl$1 managedConnectionPostClose FINE:从池中删除连接:org.datanucleus.store.mongodb.ConnectionFactoryImpl$ManagedConnectionImpl@517c804b [conn=com.mongodb.DBApiLayer@61ffbcb, commitOnRelease=true, closeOnRelease=false, closeOnTxnEnd=false] for key=org.datanucleus .ExecutionContextImpl@519549e in factory=ConnectionFactory:tx[org.datanucleus.store.mongodb.ConnectionFactoryImpl@4fb7a553] 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl disconnectObjectProvidersFromCache FINE:一级缓存已清除 2013 年 6 月 17 日上午 11:54:00 org.datanucleus.ExecutionContextImpl 关闭 FINE:ExecutionContext“org.datanucleus.ExecutionContextImpl@519549e”关闭 2013 年 6 月 17 日上午 11:54:00 org.restlet.service.ConverterService toRepresentation