*/
public EmbeddableType introspect(Class type)
throws ConfigException, SQLException
{
getInternalEmbeddableConfig(type, _annotationCfg);
Annotation embeddableAnn = _annotationCfg.getAnnotation();
EmbeddableConfig embeddableConfig = _annotationCfg.getEmbeddableConfig();
String typeName = type.getName();
EmbeddableType embeddableType = _embeddableMap.get(typeName);
if (embeddableType != null)
return embeddableType;
try {
embeddableType = _persistenceUnit.createEmbeddable(typeName, type);
_embeddableMap.put(typeName, embeddableType);
boolean isField = isField(type, embeddableConfig);
if (isField)
embeddableType.setFieldAccess(true);
// XXX: jpa/0u21
Annotation ann = type.getAnnotation(javax.persistence.Embeddable.class);
if (ann == null) {
isField = true;
embeddableType.setIdClass(true);
_persistenceUnit.getAmberContainer().addEmbeddable(typeName,