Chave exclusiva com dois campos no TMS Aurelius - Framework ORM para Delphi
Saudações!
Alguém sabe como definir os atributos da classe para o Aurelius saber que dois campos são uma chave/índice exclusivo em uma tabela?
As colunas são:
CompoundId e Revision.
Segue Classe em questão:
Alguém sabe como definir os atributos da classe para o Aurelius saber que dois campos são uma chave/índice exclusivo em uma tabela?
As colunas são:
CompoundId e Revision.
Segue Classe em questão:
type
[Entity]
[Table('TabFormula')]
[Id('FIdFormula', TIdGenerator.Guid)]
TFormula = Class
private
[Column('IdFormula', [TColumnProp.Unique, TColumnProp.Required, TColumnProp.NoUpdate])]
FIdFormula: TGuid;
[Column('Revision', [TColumnProp.Required])]
FRevision: Integer;
[Column('Description', [TColumnProp.Required])]
FDescription: String;
[Association([TAssociationProp.Required])]
[JoinColumn('CompoundId', [TColumnProp.Required])]
FCompound: TCompound;
[ManyValuedAssociation([TAssociationProp.Lazy], CascadeTypeAll)]
[ForeignJoinColumn('FormulaId', [TColumnProp.Required])]
FIngredients: TList<TIngredient>;
procedure SetIdFormula(const Value: TGuid);
procedure SetRevision(const Value: Integer);
procedure SetDescription(const Value: String);
procedure SetCompound(const Value: TCompound);
procedure SetIngredients(const Value: TList<TIngredient>);
public
destructor Destroy; override;
procedure Add(pIngredient: TIngredient);
property IdFormula: TGuid read FIdFormula write SetIdFormula;
property Revision: Integer read FRevision write SetRevision;
property Description: String read FDescription write SetDescription;
property Compound: TCompound read FCompound write SetCompound;
property Ingredients: TList<TIngredient> read FIngredients write SetIngredients;
end;
Rafael Mattos
Curtidas 0
Respostas
Rafael Mattos
22/11/2013
Achei no manual um atributo de classe para a Chave Exclusiva.
type
[Entity]
[Table('TabFormula')]
[Id('FIdFormula', TIdGenerator.Guid)]
[UniqueKey('CompoundId, Revision') // Acrescentei esse atributo.
TFormula = Class
GOSTEI 0
Adriano Sérgio
22/11/2013
Use assim:
[Entity]
[Table('EMPRESAFILIALUSUARIO')]
[Id('FEmpresa', TIdGenerator.None)]
[Id('FFilial', TIdGenerator.None)]
[Id('FUsuario', TIdGenerator.None)]
TEmpresaFilialUsuario = class
private
[Association([TAssociationProp.Lazy, TAssociationProp.Required], [TCascadeType.SaveUpdate])]
[JoinColumn('EMPRESA_ID', [TColumnProp.Required], 'ID')]
FEmpresa: Proxy<TEmpresa>;
[Association([TAssociationProp.Lazy, TAssociationProp.Required], [TCascadeType.SaveUpdate])]
[JoinColumn('FILIAL_ID', [TColumnProp.Required], 'ID')]
FFilial: Proxy<TFilial>;
[Association([TAssociationProp.Lazy, TAssociationProp.Required], [TCascadeType.SaveUpdate])]
[JoinColumn('USUARIO_ID', [TColumnProp.Required], 'ID')]
FUsuario: Proxy<TUsuario>;
procedure SetEmpresa(const Value: TEmpresa);
function GetEmpresa: TEmpresa;
function GetUsuario: TUsuario;
procedure SetUsuario(const Value: TUsuario);
function GetFilial: TFilial;
procedure SetFilial(const Value: TFilial);
public
property Empresa: TEmpresa read GetEmpresa write SetEmpresa;
property Filial: TFilial read GetFilial write SetFilial;
property Usuario: TUsuario read GetUsuario write SetUsuario;
end;
GOSTEI 0
Roni Cunha
22/11/2013
Use assim:
[Entity]
[Table('EMPRESAFILIALUSUARIO')]
[Id('FEmpresa', TIdGenerator.None)]
[Id('FFilial', TIdGenerator.None)]
[Id('FUsuario', TIdGenerator.None)]
TEmpresaFilialUsuario = class
private
[Association([TAssociationProp.Lazy, TAssociationProp.Required], [TCascadeType.SaveUpdate])]
[JoinColumn('EMPRESA_ID', [TColumnProp.Required], 'ID')]
FEmpresa: Proxy<TEmpresa>;
[Association([TAssociationProp.Lazy, TAssociationProp.Required], [TCascadeType.SaveUpdate])]
[JoinColumn('FILIAL_ID', [TColumnProp.Required], 'ID')]
FFilial: Proxy<TFilial>;
[Association([TAssociationProp.Lazy, TAssociationProp.Required], [TCascadeType.SaveUpdate])]
[JoinColumn('USUARIO_ID', [TColumnProp.Required], 'ID')]
FUsuario: Proxy<TUsuario>;
procedure SetEmpresa(const Value: TEmpresa);
function GetEmpresa: TEmpresa;
function GetUsuario: TUsuario;
procedure SetUsuario(const Value: TUsuario);
function GetFilial: TFilial;
procedure SetFilial(const Value: TFilial);
public
property Empresa: TEmpresa read GetEmpresa write SetEmpresa;
property Filial: TFilial read GetFilial write SetFilial;
property Usuario: TUsuario read GetUsuario write SetUsuario;
end;
Como ficariam os Getters e Setters?
procedure SetEmpresa(const Value: TEmpresa);
function GetEmpresa: TEmpresa;
GOSTEI 0