Example usage for org.hibernate.mapping Value createForeignKey

List of usage examples for org.hibernate.mapping Value createForeignKey

Introduction

In this page you can find the example usage for org.hibernate.mapping Value createForeignKey.

Prototype

public void createForeignKey() throws MappingException;

Source Link

Usage

From source file:org.grails.orm.hibernate.cfg.GrailsDomainBinder.java

License:Apache License

/**
 * Binds a unidirectional one-to-many creating a psuedo back reference property in the process.
 *
 * @param property//ww w .j  a  va  2  s .c  om
 * @param mappings
 * @param collection
 */
protected void bindUnidirectionalOneToMany(org.grails.datastore.mapping.model.types.OneToMany property,
        InFlightMetadataCollector mappings, Collection collection) {
    Value v = collection.getElement();
    v.createForeignKey();
    String entityName;
    if (v instanceof ManyToOne) {
        ManyToOne manyToOne = (ManyToOne) v;

        entityName = manyToOne.getReferencedEntityName();
    } else {
        entityName = ((OneToMany) v).getReferencedEntityName();
    }
    collection.setInverse(false);
    PersistentClass referenced = mappings.getEntityBinding(entityName);
    Backref prop = new Backref();
    PersistentEntity owner = property.getOwner();
    prop.setEntityName(owner.getName());
    prop.setName(
            UNDERSCORE + addUnderscore(owner.getJavaClass().getSimpleName(), property.getName()) + "Backref");
    prop.setUpdateable(false);
    prop.setInsertable(true);
    prop.setCollectionRole(collection.getRole());
    prop.setValue(collection.getKey());
    prop.setOptional(true);

    referenced.addProperty(prop);
}

From source file:org.grails.orm.hibernate.cfg.GrailsDomainBinder.java

License:Apache License

protected Property createProperty(Value value, PersistentClass persistentClass,
        PersistentProperty grailsProperty, InFlightMetadataCollector mappings) {
    // set type//  www .j  a va 2 s.  c  om
    value.setTypeUsingReflection(persistentClass.getClassName(), grailsProperty.getName());

    if (value.getTable() != null) {
        value.createForeignKey();
    }

    Property prop = new Property();
    prop.setValue(value);
    bindProperty(grailsProperty, prop, mappings);
    return prop;
}