/** * Returns the persistent category for the attribute. */ public PersistentAttributeType getPersistentAttributeType() { if (fmd.isEmbeddedPC()) return PersistentAttributeType.EMBEDDED; if (fmd.isElementCollection()) return PersistentAttributeType.ELEMENT_COLLECTION; return PersistentAttributeType.BASIC; }
/** * Returns the persistent category for the attribute. */ public PersistentAttributeType getPersistentAttributeType() { if (fmd.isEmbeddedPC()) return PersistentAttributeType.EMBEDDED; if (fmd.isElementCollection()) return PersistentAttributeType.ELEMENT_COLLECTION; return PersistentAttributeType.BASIC; }
/** * Returns the persistent category for the attribute. */ public PersistentAttributeType getPersistentAttributeType() { if (fmd.isEmbeddedPC()) return PersistentAttributeType.EMBEDDED; if (fmd.isElementCollection()) return PersistentAttributeType.ELEMENT_COLLECTION; return PersistentAttributeType.BASIC; }
/** * Returns the persistent category for the attribute. */ public PersistentAttributeType getPersistentAttributeType() { if (fmd.isEmbeddedPC()) return PersistentAttributeType.EMBEDDED; if (fmd.isElementCollection()) return PersistentAttributeType.ELEMENT_COLLECTION; return PersistentAttributeType.BASIC; }
/** * Parse @OrderBy. */ private void parseOrderBy(FieldMetaData fmd, OrderBy anno) { String dec = anno.value(); if (fmd.isElementCollection() && fmd.getElement().getEmbeddedMetaData() != null) { if (dec.length() == 0 || dec.equals("ASC") || dec.equals("DESC")) throw new MetaDataException(_loc.get( "invalid-orderBy", fmd)); } if (dec.length() == 0 || dec.equals("ASC")) dec = Order.ELEMENT + " asc"; else if (dec.equals("DESC")) dec = Order.ELEMENT + " desc"; fmd.setOrderDeclaration(dec); }
public ClassMetaData getMemberClassMetaData() { return _member.fmd.isElementCollection() ? _member.fmd.getElement().getEmbeddedMetaData() : _member.fmd.getElement().getDeclaredTypeMetaData(); }
public ClassMetaData getMemberClassMetaData() { return _member.fmd.isElementCollection() ? _member.fmd.getElement().getEmbeddedMetaData() : _member.fmd.getElement().getDeclaredTypeMetaData(); }
public ClassMetaData getMemberClassMetaData() { return _member.fmd.isElementCollection() ? _member.fmd.getElement().getEmbeddedMetaData() : _member.fmd.getElement().getDeclaredTypeMetaData(); }
public ClassMetaData getMemberClassMetaData() { return _member.fmd.isElementCollection() ? _member.fmd.getElement().getEmbeddedMetaData() : _member.fmd.getElement().getDeclaredTypeMetaData(); }
@Override protected void parseLobMapping(FieldMetaData fmd) { Column col = new Column(); int typeCode = fmd.isElementCollection() ? fmd.getElement().getDeclaredTypeCode() : fmd.getDeclaredTypeCode(); Class<?> type = fmd.isElementCollection() ? fmd.getElement().getDeclaredType() : fmd.getDeclaredType(); if (typeCode == JavaTypes.STRING || type == char[].class || type == Character[].class) col.setType(Types.CLOB); else col.setType(Types.BLOB); if (fmd.isElementCollection()) ((FieldMapping) fmd).getElementMapping().getValueInfo().setColumns(Arrays.asList(new Column[]{ col })); else ((FieldMapping) fmd).getValueInfo().setColumns(Arrays.asList(new Column[]{ col })); }
/** * Parse lob. */ protected boolean startLob(Attributes attrs) throws SAXException { FieldMetaData fmd = (FieldMetaData) currentElement(); int typeCode = fmd.isElementCollection() ? fmd.getElement().getDeclaredTypeCode() : fmd.getDeclaredTypeCode(); Class<?> type = fmd.isElementCollection() ? fmd.getElement().getDeclaredType() : fmd.getDeclaredType(); if (typeCode != JavaTypes.STRING && type != char[].class && type != Character[].class && type != byte[].class && type != Byte[].class) fmd.setSerialized(true); return true; }
/** * Parse lob. */ protected boolean startLob(Attributes attrs) throws SAXException { FieldMetaData fmd = (FieldMetaData) currentElement(); int typeCode = fmd.isElementCollection() ? fmd.getElement().getDeclaredTypeCode() : fmd.getDeclaredTypeCode(); Class<?> type = fmd.isElementCollection() ? fmd.getElement().getDeclaredType() : fmd.getDeclaredType(); if (typeCode != JavaTypes.STRING && type != char[].class && type != Character[].class && type != byte[].class && type != Byte[].class) fmd.setSerialized(true); return true; }
/** * Gets the field that may have been embedded inside the given field. * For example, a given primary key field which is using an embedded class as a complex primary key. * @param fmd a given field * @return the embedded field or the given field itself */ protected FieldMetaData getEmbeddedFieldMetaData(FieldMetaData fmd) { Members.Member<?,?> member = getInnermostMember(_parent,_member); ClassMetaData embeddedMeta = member.fmd.isElementCollection() ? member.fmd.getElement().getEmbeddedMetaData() : member.fmd.getEmbeddedMetaData(); return (embeddedMeta != null) ? embeddedMeta.getField(fmd.getName()) : fmd; }
/** * Gets the field that may have been embedded inside the given field. * For example, a given primary key field which is using an embedded class as a complex primary key. * @param fmd a given field * @return the embedded field or the given field itself */ protected FieldMetaData getEmbeddedFieldMetaData(FieldMetaData fmd) { Members.Member<?,?> member = getInnermostMember(_parent,_member); ClassMetaData embeddedMeta = member.fmd.isElementCollection() ? member.fmd.getElement().getEmbeddedMetaData() : member.fmd.getEmbeddedMetaData(); return (embeddedMeta != null) ? embeddedMeta.getField(fmd.getName()) : fmd; }
/** * Gets the field that may have been embedded inside the given field. * For example, a given primary key field which is using an embedded class as a complex primary key. * @param fmd a given field * @return the embedded field or the given field itself */ protected FieldMetaData getEmbeddedFieldMetaData(FieldMetaData fmd) { Members.Member<?,?> member = getInnermostMember(_parent,_member); ClassMetaData embeddedMeta = member.fmd.isElementCollection() ? member.fmd.getElement().getEmbeddedMetaData() : member.fmd.getEmbeddedMetaData(); return (embeddedMeta != null) ? embeddedMeta.getField(fmd.getName()) : fmd; }
/** * Gets the field that may have been embedded inside the given field. * For example, a given primary key field which is using an embedded class as a complex primary key. * @param fmd a given field * @return the embedded field or the given field itself */ protected FieldMetaData getEmbeddedFieldMetaData(FieldMetaData fmd) { Members.Member<?,?> member = getInnermostMember(_parent,_member); ClassMetaData embeddedMeta = member.fmd.isElementCollection() ? member.fmd.getElement().getEmbeddedMetaData() : member.fmd.getEmbeddedMetaData(); return (embeddedMeta != null) ? embeddedMeta.getField(fmd.getName()) : fmd; }
protected ClassMetaData resolveClassMetaData(JPQLNode node) { // handle looking up alias names String schemaName = assertSchemaName(node); ClassMetaData cmd = getClassMetaData(schemaName, false); if (cmd != null) return cmd; // we might be referencing a collection field of a subquery's parent if (isPath(node)) { Path path = getPath(node); FieldMetaData fmd = path.last(); cmd = getFieldType(fmd); if (cmd == null && fmd.isElementCollection()) cmd = fmd.getDefiningMetaData(); return cmd; } // now run again to throw the correct exception return getClassMetaData(schemaName, true); }
private static ClassMetaData getFieldType(FieldMetaData fmd) { if (fmd == null) return null; ClassMetaData cmd = null; ValueMetaData vmd; if ((vmd = fmd.getElement()) != null) cmd = vmd.getDeclaredTypeMetaData(); else if ((vmd = fmd.getKey()) != null) cmd = vmd.getDeclaredTypeMetaData(); else if ((vmd = fmd.getValue()) != null) cmd = vmd.getDeclaredTypeMetaData(); if (cmd == null || cmd.getDescribedType() == Object.class) cmd = fmd.getDeclaredTypeMetaData(); if (cmd == null && fmd.isElementCollection()) cmd = fmd.getDefiningMetaData(); return cmd; }
public static void checkEmbeddable(Value val, String currentQuery) { Path path = val instanceof Path ? (Path) val : null; if (path == null) return; FieldMetaData fmd = path.last(); if (fmd == null) return; ValueMetaData vm = fmd.isElementCollection() ? fmd.getElement() : fmd.getValue(); if (vm.getEmbeddedMetaData() != null) { //throw parseException(EX_USER, "bad-predicate", // new Object[]{ currentQuery() }, null); String argStr = _loc.get("bad-predicate", new Object[] {fmd.getName()}).getMessage(); Message msg = _loc.get("parse-error", argStr, currentQuery); throw new UserException(msg, null); } }
/** * Set field-level information into the given state manager. */ protected void loadField(OpenJPAStateManager sm, FieldMetaData fmd, FetchConfiguration fetch, Object context) { int index = fmd.getIndex(); Object val = toField(sm, fmd, getData(index), fetch, context); // If val is null, make sure that we don't send back a null Embeddable or ElementCollection...perhaps others? // Probably should think about trying to shove this data back into the cache at this point so we don't // continually run through this code. if (val == null && fmd.isEmbeddedPC()) { val = sm.getContext().embed(null, null, sm, fmd).getManagedInstance(); } else if (val == null && fmd.isElementCollection()) { val = sm.newProxy(index); } sm.storeField(index, val); }