Refine search
@Entity @Table(name = "vets") public class Vet extends Person { @ManyToMany(fetch = FetchType.EAGER) @JoinTable(name = "vet_specialties", joinColumns = @JoinColumn(name = "vet_id"), inverseJoinColumns = @JoinColumn(name = "specialty_id")) private Set<Specialty> specialties;
JoinTableAssociation(JoinTable table) { this.table = table; this.columns = new LinkedHashSet<>(); for (JoinColumn column : table.joinColumns()) { String columnName = column.name(); ForeignKey foreignKey = column.foreignKey(); ReferentialAction action = mapConstraint(foreignKey.value()); columns.add(new AssociativeReference(columnName, null, null, action, action)); } for (JoinColumn column : table.inverseJoinColumns()) { String columnName = column.name(); ForeignKey foreignKey = column.foreignKey(); ReferentialAction action = mapConstraint(foreignKey.value()); columns.add(new AssociativeReference(columnName, null, null, action, action)); } }
@Override public String name() { return table.name(); }
@Entity public class Address { @Id private long id; @ManyToOne @JoinTable(name = "person_address") private Person person; public long getId() { return id; } public void setId(long id) { this.id = id; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }
public class DefaultTrackingModifiedEntitiesRevisionEntity extends DefaultRevisionEntity { @ElementCollection(fetch = FetchType.EAGER) @JoinTable(name = "REVCHANGES", joinColumns = @JoinColumn(name = "REV")) @Column(name = "ENTITYNAME") @Fetch(FetchMode.JOIN) @ModifiedEntityNames
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}) @JoinTable( name = "StoreSupplier", joinColumns = @JoinColumn(name = "store"), inverseJoinColumns = @JoinColumn(name = "supplier") ) public Set<Supplier> getSuppliers() { return suppliers; }
@ElementCollection // HHH-7732 -- "EntityWithAnElementCollection_someStrings" is too long for Oracle. @JoinTable( name = "SomeStrings", joinColumns = @JoinColumn( name = "EWAEC_ID") ) public Set<String> getSomeStrings() { return someStrings; }
@ManyToMany( cascade = CascadeType.ALL ) @JoinTable( name = "CHARACTER_ALIAS", indexes = @Index( columnList = "characters_id")) // @JoinTable( // name = "CHARACTER_ALIAS", // joinColumns = @JoinColumn(name="ALIAS_ID", referencedColumnName="ID"), // inverseJoinColumns = @JoinColumn(name="CHARACTER_ID", referencedColumnName="ID") // ) public List<Character> getCharacters() { return characters; }
assertAnnotationNotPresent( JoinColumn.class ); JoinTable joinTableAnno = reader.getAnnotation( JoinTable.class ); assertEquals( "cat1", joinTableAnno.catalog() ); assertEquals( "table1", joinTableAnno.name() ); assertEquals( "schema1", joinTableAnno.schema() ); JoinColumn[] joinColumns = joinTableAnno.joinColumns(); assertEquals( 2, joinColumns.length ); assertEquals( "", joinColumns[0].name() ); assertEquals( "", joinColumns[0].referencedColumnName() ); assertEquals( "", joinColumns[0].table() ); assertEquals( "", joinColumns[0].columnDefinition() ); assertTrue( joinColumns[0].insertable() ); JoinColumn[] inverseJoinColumns = joinTableAnno.inverseJoinColumns(); assertEquals( 2, inverseJoinColumns.length ); assertEquals( "", inverseJoinColumns[0].name() ); .uniqueConstraints(); assertEquals( 2, uniqueConstraints.length ); assertEquals( "", uniqueConstraints[0].name() );
@Test public void testJoinTableNoChildren() throws Exception { reader = getReader( Entity2.class, "field1", "many-to-many.orm16.xml" ); assertAnnotationPresent( ManyToMany.class ); assertAnnotationPresent( JoinTable.class ); assertAnnotationNotPresent( JoinColumns.class ); assertAnnotationNotPresent( JoinColumn.class ); JoinTable joinTableAnno = reader.getAnnotation( JoinTable.class ); assertEquals( "", joinTableAnno.catalog() ); assertEquals( "", joinTableAnno.name() ); assertEquals( "", joinTableAnno.schema() ); assertEquals( 0, joinTableAnno.joinColumns().length ); assertEquals( 0, joinTableAnno.inverseJoinColumns().length ); assertEquals( 0, joinTableAnno.uniqueConstraints().length ); }
@ManyToOne(fetch = FetchType.LAZY) @JoinTable(name="Tree_Forest") public ForestType getForestType() { return forestType; }
if (column != null && !isEmpty(column.name())) { prop.setDbColumn(column.name()); if (!joinColumn.updatable()) { prop.setDbUpdateable(false); if (!joinColumn.nullable()) { prop.setNullable(false); for (JoinColumn joinColumn : joinTable.joinColumns()) { if (beanTable == null) { throw new IllegalStateException("Looks like a missing @ManyToOne or @OneToOne on property " + prop.getFullBeanName()+" - no related 'BeanTable'"); if (!joinColumn.updatable()) { prop.setDbUpdateable(false);
if ( joinTableAnn != null ) { joinColumns = Ejb3JoinColumn.buildJoinColumns( joinTableAnn.inverseJoinColumns(), null, entityBinder.getSecondaryTables(), buildingContext ); if ( StringHelper.isEmpty( joinTableAnn.name() ) ) { throw new AnnotationException( "JoinTable.name() on a @ToOne association has to be explicit: "
/** * Return the full table name */ private String getFullTableName(JoinTable joinTable) { StringBuilder sb = new StringBuilder(); if (!StringHelper.isNull(joinTable.catalog())) { sb.append(joinTable.catalog()).append("."); } if (!StringHelper.isNull(joinTable.schema())) { sb.append(joinTable.schema()).append("."); } sb.append(joinTable.name()); return sb.toString(); }
/** * Define the joins for a ManyToMany relationship. * <p> * This includes joins to the intersection table and from the intersection table * to the other side of the ManyToMany. * </p> */ private void readJoinTable(JoinTable joinTable, DeployBeanPropertyAssocMany<?> prop) { String intTableName = getFullTableName(joinTable); if (intTableName.isEmpty()) { BeanTable localTable = factory.getBeanTable(descriptor.getBeanType()); BeanTable otherTable = factory.getBeanTable(prop.getTargetType()); intTableName = getM2MJoinTableName(localTable, otherTable); } // set the intersection table DeployTableJoin intJoin = new DeployTableJoin(); intJoin.setTable(intTableName); // add the source to intersection join columns intJoin.addJoinColumn(true, joinTable.joinColumns(), prop.getBeanTable()); // set the intersection to dest table join columns DeployTableJoin destJoin = prop.getTableJoin(); destJoin.addJoinColumn(false, joinTable.inverseJoinColumns(), prop.getBeanTable()); intJoin.setType(SqlJoinType.OUTER); // reverse join from dest back to intersection DeployTableJoin inverseDest = destJoin.createInverse(intTableName); prop.setIntersectionJoin(intJoin); prop.setInverseJoin(inverseDest); }
collectionTableAnn.joinColumns().length == 1 ) { JoinColumn joinColumn = collectionTableAnn.joinColumns()[0]; key.setForeignKeyName( StringHelper.nullIfEmpty( joinColumn.foreignKey().name() ) ); key.setForeignKeyDefinition( StringHelper.nullIfEmpty( joinColumn.foreignKey().foreignKeyDefinition() ) ); final JoinTable joinTableAnn = property.getAnnotation( JoinTable.class ); if ( joinTableAnn != null ) { String foreignKeyName = joinTableAnn.foreignKey().name(); String foreignKeyDefinition = joinTableAnn.foreignKey().foreignKeyDefinition(); ConstraintMode foreignKeyValue = joinTableAnn.foreignKey().value(); if ( joinTableAnn.joinColumns().length != 0 ) { final JoinColumn joinColumnAnn = joinTableAnn.joinColumns()[0]; if ( "".equals( foreignKeyName ) ) { foreignKeyName = joinColumnAnn.foreignKey().name(); foreignKeyDefinition = joinColumnAnn.foreignKey().foreignKeyDefinition();
if ( joinTableAnn != null && joinTableAnn.inverseJoinColumns().length > 0 ) { String path = collValue.getOwnerEntityName() + "." + joinColumns[0].getPropertyName(); throw new AnnotationException( final JoinTable joinTableAnn = property.getAnnotation( JoinTable.class ); if ( joinTableAnn != null ) { String foreignKeyName = joinTableAnn.inverseForeignKey().name(); String foreignKeyDefinition = joinTableAnn.inverseForeignKey().foreignKeyDefinition(); ConstraintMode foreignKeyValue = joinTableAnn.inverseForeignKey().value(); if ( joinTableAnn.inverseJoinColumns().length != 0 ) { final JoinColumn joinColumnAnn = joinTableAnn.inverseJoinColumns()[0]; if ( "".equals( foreignKeyName ) ) { foreignKeyName = joinColumnAnn.foreignKey().name(); foreignKeyDefinition = joinColumnAnn.foreignKey().foreignKeyDefinition(); foreignKeyValue = joinColumnAnn.foreignKey().value(); if ( joinTableAnn.inverseForeignKey().value() == ConstraintMode.NO_CONSTRAINT ) { element.setForeignKeyName( "none" );
if ( joinTableAnn != null && joinTableAnn.inverseJoinColumns().length > 0 ) { String path = collValue.getOwnerEntityName() + "." + joinColumns[0].getPropertyName(); throw new AnnotationException(
@Entity public class Attrset { @Id @GeneratedValue private Long id; @OneToMany @JoinTable(name = "ATTRSET_X_ATTRVALUE") private Set<Attrvalue> attrvalues = new HashSet<Attrvalue>(); public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Set<Attrvalue> getAttrvalues() { return attrvalues; } public void setAttrvalues(Set<Attrvalue> attrvalues) { this.attrvalues = attrvalues; } }
public class SequenceIdTrackingModifiedEntitiesRevisionEntity extends SequenceIdRevisionEntity { @ElementCollection(fetch = FetchType.EAGER) @JoinTable(name = "REVCHANGES", joinColumns = @JoinColumn(name = "REV")) @Column(name = "ENTITYNAME") @Fetch(FetchMode.JOIN) @ModifiedEntityNames