如果您从hibernate 3.6迁移到4.3,那么在刷新实体时,在嵌入式Id中有一个NonUniqueObjectException,那么您应该查看响应
发布于 2014-04-19 11:19:14
在readRow of EntityLoadQueryDetails类中
if ( entityPersister.getIdentifierType().isComponentType() ) {
final ComponentType identifierType = (ComponentType) entityPersister.getIdentifierType();
if ( !identifierType.isEmbedded() ) {
addKeyManyToOnesToSession(
context,
identifierType,
entityKey.getIdentifier()
);
}
}如果您检查ComponentType -> isEmbedded()的代码,就会发现
@Override
public boolean isEmbedded() {
return false; -->> that dosent make a sens !!
}所以我改变了它,即使这不是一个完美的解决方案
@Override
public boolean isEmbedded() {
return propertyNames.length>1;
}这对我来说是完全可行的。
https://stackoverflow.com/questions/23169296
复制相似问题