/** * build join formula */ public static Ejb3JoinColumn buildJoinFormula( JoinFormula ann, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, MetadataBuildingContext buildingContext) { Ejb3JoinColumn formulaColumn = new Ejb3JoinColumn(); formulaColumn.setFormula( ann.value() ); formulaColumn.setReferencedColumn(ann.referencedColumnName()); formulaColumn.setBuildingContext( buildingContext ); formulaColumn.setPropertyHolder( propertyHolder ); formulaColumn.setJoins( joins ); formulaColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); formulaColumn.bind(); return formulaColumn; }
@ManyToOne @JoinColumnOrFormula(formula=@JoinFormula(value="UPPER(lang_code)")) //@JoinColumnOrFormula(formula=@JoinFormula(value="(select l.code from Language l where l.name = lang_name)")) public Language getLanguage() { return language; } public void setLanguage(Language language) {
public static Ejb3JoinColumn[] buildJoinColumnsOrFormulas( JoinColumnOrFormula[] anns, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, MetadataBuildingContext buildingContext) { Ejb3JoinColumn [] joinColumns = new Ejb3JoinColumn[anns.length]; for (int i = 0; i < anns.length; i++) { JoinColumnOrFormula join = anns[i]; JoinFormula formula = join.formula(); if (formula.value() != null && !formula.value().equals("")) { joinColumns[i] = buildJoinFormula( formula, mappedBy, joins, propertyHolder, propertyName, buildingContext ); } else { joinColumns[i] = buildJoinColumns( new JoinColumn[] { join.column() }, mappedBy, joins, propertyHolder, propertyName, buildingContext )[0]; } } return joinColumns; }
public static Ejb3JoinColumn[] buildJoinColumnsOrFormulas( JoinColumnsOrFormulas anns, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, ExtendedMappings mappings ) { JoinColumnOrFormula [] ann = anns.value(); Ejb3JoinColumn [] joinColumns = new Ejb3JoinColumn[ann.length]; for (int i = 0; i < ann.length; i++) { JoinColumnOrFormula join = (JoinColumnOrFormula) ann[i]; JoinFormula formula = join.formula(); if (formula.value() != null && !formula.value().equals("")) { joinColumns[i] = buildJoinFormula(formula, mappedBy, joins, propertyHolder, propertyName, mappings); } else { joinColumns[i] = buildJoinColumns(new JoinColumn[] { join.column() }, mappedBy, joins, propertyHolder, propertyName, mappings)[0]; } } return joinColumns; }
/** * build join formula */ private static Ejb3JoinColumn buildJoinFormula( JoinFormula ann, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, ExtendedMappings mappings ) { Ejb3JoinColumn formulaColumn = new Ejb3JoinColumn(); formulaColumn.setFormula( ann.value() ); formulaColumn.setReferencedColumn(ann.referencedColumnName()); formulaColumn.setMappings( mappings ); formulaColumn.setPropertyHolder( propertyHolder ); formulaColumn.setJoins( joins ); formulaColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); formulaColumn.bind(); return formulaColumn; }
@Entity( name = "A" ) @Table( name = "A" ) public static class A { @Id @Column( name = "idA") public Integer id; @OneToMany @JoinColumnOrFormula(formula = @JoinFormula(value = "idA", referencedColumnName = "idA")) Set<D> ds = new HashSet<D>(); }
public static Ejb3JoinColumn[] buildJoinColumnsOrFormulas( JoinColumnOrFormula[] anns, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, MetadataBuildingContext buildingContext) { Ejb3JoinColumn [] joinColumns = new Ejb3JoinColumn[anns.length]; for (int i = 0; i < anns.length; i++) { JoinColumnOrFormula join = anns[i]; JoinFormula formula = join.formula(); if (formula.value() != null && !formula.value().equals("")) { joinColumns[i] = buildJoinFormula( formula, mappedBy, joins, propertyHolder, propertyName, buildingContext ); } else { joinColumns[i] = buildJoinColumns( new JoinColumn[] { join.column() }, mappedBy, joins, propertyHolder, propertyName, buildingContext )[0]; } } return joinColumns; }
/** * build join formula */ public static Ejb3JoinColumn buildJoinFormula( JoinFormula ann, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, MetadataBuildingContext buildingContext) { Ejb3JoinColumn formulaColumn = new Ejb3JoinColumn( buildingContext ); formulaColumn.setFormula( ann.value() ); formulaColumn.setReferencedColumn(ann.referencedColumnName()); formulaColumn.setPropertyHolder( propertyHolder ); formulaColumn.setJoins( joins ); formulaColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); formulaColumn.bind(); return formulaColumn; }
@ManyToOne @JoinColumnOrFormula(column = @JoinColumn(name = "CDT_MDL_CODE", referencedColumnName = "MDL_CODE")) @JoinColumnOrFormula(formula = @JoinFormula(value = "CDT_MFG_CODE", referencedColumnName = "MDL_MFG_CODE")) @JoinColumnOrFormula(formula = @JoinFormula(value = "CDT_COMPANY_CODE", referencedColumnName = "MDL_COMPANY_CODE")) public Model getModel() { return model; }
public static Ejb3JoinColumn[] buildJoinColumnsOrFormulas( JoinColumnsOrFormulas anns, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, Mappings mappings) { JoinColumnOrFormula [] ann = anns.value(); Ejb3JoinColumn [] joinColumns = new Ejb3JoinColumn[ann.length]; for (int i = 0; i < ann.length; i++) { JoinColumnOrFormula join = ann[i]; JoinFormula formula = join.formula(); if (formula.value() != null && !formula.value().equals("")) { joinColumns[i] = buildJoinFormula( formula, mappedBy, joins, propertyHolder, propertyName, mappings ); } else { joinColumns[i] = buildJoinColumns( new JoinColumn[] { join.column() }, mappedBy, joins, propertyHolder, propertyName, mappings )[0]; } } return joinColumns; }
/** * build join formula */ public static Ejb3JoinColumn buildJoinFormula( JoinFormula ann, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, Mappings mappings) { Ejb3JoinColumn formulaColumn = new Ejb3JoinColumn(); formulaColumn.setFormula( ann.value() ); formulaColumn.setReferencedColumn(ann.referencedColumnName()); formulaColumn.setMappings( mappings ); formulaColumn.setPropertyHolder( propertyHolder ); formulaColumn.setJoins( joins ); formulaColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); formulaColumn.bind(); return formulaColumn; }
@ManyToOne @JoinColumnOrFormula(column=@JoinColumn(name="order_nbr", referencedColumnName="order_nbr")) @JoinColumnOrFormula(formula=@JoinFormula(value="'F'", referencedColumnName="is_default")) public Menu getOrder() { return order; }
public static Ejb3JoinColumn[] buildJoinColumnsOrFormulas( JoinColumnsOrFormulas anns, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, Mappings mappings) { JoinColumnOrFormula [] ann = anns.value(); Ejb3JoinColumn [] joinColumns = new Ejb3JoinColumn[ann.length]; for (int i = 0; i < ann.length; i++) { JoinColumnOrFormula join = ann[i]; JoinFormula formula = join.formula(); if (formula.value() != null && !formula.value().equals("")) { joinColumns[i] = buildJoinFormula( formula, mappedBy, joins, propertyHolder, propertyName, mappings ); } else { joinColumns[i] = buildJoinColumns( new JoinColumn[] { join.column() }, mappedBy, joins, propertyHolder, propertyName, mappings )[0]; } } return joinColumns; }
/** * build join formula */ public static Ejb3JoinColumn buildJoinFormula( JoinFormula ann, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, Mappings mappings) { Ejb3JoinColumn formulaColumn = new Ejb3JoinColumn(); formulaColumn.setFormula( ann.value() ); formulaColumn.setReferencedColumn(ann.referencedColumnName()); formulaColumn.setMappings( mappings ); formulaColumn.setPropertyHolder( propertyHolder ); formulaColumn.setJoins( joins ); formulaColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); formulaColumn.bind(); return formulaColumn; }
@ManyToOne @JoinColumnOrFormula(column = @JoinColumn(name = "CDT_MFG_CODE", referencedColumnName = "MFG_CODE")) @JoinColumnOrFormula(formula = @JoinFormula(value = "CDT_COMPANY_CODE", referencedColumnName = "MFG_COMPANY_CODE")) public Manufacturer getManufacturer() { return manufacturer; }
@ManyToOne @JoinColumnOrFormula(column=@JoinColumn(name="id", referencedColumnName="company_id", updatable=false, insertable=false)) @JoinColumnOrFormula(formula=@JoinFormula(value="'T'", referencedColumnName="is_default")) public Person getDefaultContactPerson() { return person; } public void setDefaultContactPerson(Person person) {
@JoinFormula( "REGEXP_REPLACE(phoneNumber, '\\+(\\d+)-.*', '\\1')::int" ) private Country country;
@JoinFormula(value="SUBSTRING(product_idnf, 1, 3)", referencedColumnName="product_idnf") @Fetch(FetchMode.JOIN)
@Entity(name = "Stock") public static class Stock implements Serializable { @Id @Column(name = "ID") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumnOrFormula(column = @JoinColumn(name = "CODE_ID", referencedColumnName = "ID")) @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "TYPE", value = "'TYPE_A'")) private StockCode code; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public StockCode getCode() { return code; } public void setCode(StockCode code) { this.code = code; } }
@Entity(name = "Stock") public static class Stock implements Serializable { @Id @Column(name = "ID") private Long id; @ManyToOne(fetch = FetchType.LAZY) @NotFound(action = NotFoundAction.IGNORE) @JoinColumnOrFormula(column = @JoinColumn(name = "CODE_ID", referencedColumnName = "ID")) @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "TYPE", value = "'TYPE_A'")) private StockCode code; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public StockCode getCode() { return code; } public void setCode(StockCode code) { this.code = code; } }