Example usage for org.hibernate.jpa.boot.internal ParsedPersistenceXmlDescriptor setUseQuotedIdentifiers

List of usage examples for org.hibernate.jpa.boot.internal ParsedPersistenceXmlDescriptor setUseQuotedIdentifiers

Introduction

In this page you can find the example usage for org.hibernate.jpa.boot.internal ParsedPersistenceXmlDescriptor setUseQuotedIdentifiers.

Prototype

public void setUseQuotedIdentifiers(boolean useQuotedIdentifiers) 

Source Link

Usage

From source file:org.lightmare.jpa.hibernate.internal.PersistenceXmlParserImpl.java

License:Open Source License

private void bindPersistenceUnit(ParsedPersistenceXmlDescriptor persistenceUnit,
        Element persistenceUnitElement) {
    final String name = persistenceUnitElement.getAttribute("name");
    if (StringHelper.isNotEmpty(name)) {
        LOG.tracef("Persistence unit name from persistence.xml : %s", name);
        persistenceUnit.setName(name);//ww  w  .  j  a  va 2s . c  o  m
    }

    final PersistenceUnitTransactionType transactionType = parseTransactionType(
            persistenceUnitElement.getAttribute("transaction-type"));
    if (transactionType != null) {
        persistenceUnit.setTransactionType(transactionType);
    }

    NodeList children = persistenceUnitElement.getChildNodes();
    boolean resolvedClasses = Boolean.FALSE;
    for (int i = 0; i < children.getLength(); i++) {
        if (children.item(i).getNodeType() == Node.ELEMENT_NODE) {
            Element element = (Element) children.item(i);
            String tag = element.getTagName();
            if (tag.equals("non-jta-data-source")) {
                persistenceUnit.setNonJtaDataSource(extractContent(element));
            } else if (tag.equals("jta-data-source")) {
                persistenceUnit.setJtaDataSource(extractContent(element));
            } else if (tag.equals("provider")) {
                persistenceUnit.setProviderClassName(extractContent(element));
            } else if (tag.equals("class")) {
                if (CollectionUtils.invalid(MetaConfig.getClasses(metaConfig))) {
                    persistenceUnit.addClasses(extractContent(element));
                } else if (Boolean.FALSE.equals(resolvedClasses)) {
                    PersistenceDescriptorUtils.resolveEntities(persistenceUnit, metaConfig);
                    resolvedClasses = Boolean.TRUE;
                }
            } else if (tag.equals("mapping-file")) {
                persistenceUnit.addMappingFiles(extractContent(element));
            } else if (tag.equals("jar-file")) {
                persistenceUnit.addJarFileUrl(ArchiveHelper.getURLFromPath(extractContent(element)));
            } else if (tag.equals("exclude-unlisted-classes")) {
                persistenceUnit.setExcludeUnlistedClasses(extractBooleanContent(element, true));
            } else if (tag.equals("delimited-identifiers")) {
                persistenceUnit.setUseQuotedIdentifiers(true);
            } else if (tag.equals("validation-mode")) {
                persistenceUnit.setValidationMode(extractContent(element));
            } else if (tag.equals("shared-cache-mode")) {
                persistenceUnit.setSharedCacheMode(extractContent(element));
            } else if (tag.equals("properties")) {
                NodeList props = element.getChildNodes();
                for (int j = 0; j < props.getLength(); j++) {
                    if (props.item(j).getNodeType() == Node.ELEMENT_NODE) {
                        Element propElement = (Element) props.item(j);
                        if (!"property".equals(propElement.getTagName())) {
                            continue;
                        }
                        String propName = propElement.getAttribute("name").trim();
                        String propValue = propElement.getAttribute("value").trim();
                        if (StringHelper.isEmpty(propValue)) {
                            // fall back to the natural (Hibernate) way of
                            // description
                            propValue = extractContent(propElement, "");
                        }
                        persistenceUnit.getProperties().put(propName, propValue);
                    }
                }
            }
        }
    }

    if (Boolean.FALSE.equals(resolvedClasses)) {
        PersistenceDescriptorUtils.resolveEntities(persistenceUnit, metaConfig);
    }
}