logologo
Começar
Manual
Desenvolvimento
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Começar
Manual
Desenvolvimento
Plugins
API
logologo
Visão Geral da API

@nocobase/auth

AuthManager
Autenticação
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Variáveis de Ambiente Globais

@nocobase/client

Aplicação
Plugin

@nocobase/database

Coleção
Campo

interfaces

BaseInterface
Operadores de Filtro

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repositório

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (abstrata)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Gerenciador de Fonte de Dados
Contexto do Fluxo
FlowEngine
FlowModel
Recurso de Fluxo

@nocobase/logger

Logger

@nocobase/server

AppCommand
Aplicação
AuditManager
Contexto
Migração
Plugin

@nocobase/sdk

Auth
Storage
Previous PageHasManyRepository
Next PageRepositório
Aviso de tradução por IA

Esta documentação foi traduzida automaticamente por IA.

#HasOneRepository

#Visão Geral

HasOneRepository é o repositório para associações do tipo HasOne.

const User = db.collection({
  name: 'users',
  fields: [
    { type: 'hasOne', name: 'profile' },
    { type: 'string', name: 'name' },
  ],
});

const Profile = db.collection({
  name: 'profiles',
  fields: [{ type: 'string', name: 'avatar' }],
});

const user = await User.repository.create({
  values: { name: 'u1' },
});

// Obtenha o repositório de associação
const userProfileRepository = User.repository
  .relation('profile')
  .of(user.get('id'));

// Também pode ser inicializado diretamente
new HasOneRepository(User, 'profile', user.get('id'));

#Métodos da Classe

#find()

Encontra o objeto associado

Assinatura

  • async find(options?: SingleRelationFindOption): Promise<Model<any> | null>

Tipo

interface SingleRelationFindOption extends Transactionable {
  fields?: Fields;
  except?: Except;
  appends?: Appends;
  filter?: Filter;
}

Detalhes

Os parâmetros de consulta são os mesmos que em Repository.find().

Exemplo

const profile = await UserProfileRepository.find();
// Retorna null se o objeto associado não existir

#create()

Cria um objeto associado

Assinatura

  • async create(options?: CreateOptions): Promise<Model>

Exemplo

const profile = await UserProfileRepository.create({
  values: { avatar: 'avatar1' },
});

console.log(profile.toJSON());
/*
{
  id: 1,
  avatar: 'avatar1',
  userId: 1,
  updatedAt: 2022-09-24T13:59:40.025Z,
  createdAt: 2022-09-24T13:59:40.025Z
}
*/

#update()

Atualiza o objeto associado

Assinatura

  • async update(options: UpdateOptions): Promise<Model>

Exemplo

const profile = await UserProfileRepository.update({
  values: { avatar: 'avatar2' },
});

profile.get('avatar'); // 'avatar2'

#remove()

Remove o objeto associado. Isso apenas desvincula a associação, não exclui o objeto associado.

Assinatura

  • async remove(options?: Transactionable): Promise<void>

Detalhes

  • transaction: Objeto de transação. Se nenhum parâmetro de transação for passado, o método criará automaticamente uma transação interna.

Exemplo

await UserProfileRepository.remove();
(await UserProfileRepository.find()) == null; // true

(await Profile.repository.count()) === 1; // true

#destroy()

Exclui o objeto associado

Assinatura

  • async destroy(options?: Transactionable): Promise<Boolean>

Detalhes

  • transaction: Objeto de transação. Se nenhum parâmetro de transação for passado, o método criará automaticamente uma transação interna.

Exemplo

await UserProfileRepository.destroy();
(await UserProfileRepository.find()) == null; // true
(await Profile.repository.count()) === 0; // true

#set()

Define o objeto associado

Assinatura

  • async set(options: TargetKey | SetOption): Promise<void>

Tipo

interface SetOption extends Transactionable {
  tk?: TargetKey;
}

Detalhes

  • tk: O targetKey do objeto associado a ser definido.
  • transaction: Objeto de transação. Se nenhum parâmetro de transação for passado, o método criará automaticamente uma transação interna.

Exemplo

const newProfile = await Profile.repository.create({
  values: { avatar: 'avatar2' },
});

await UserProfileRepository.set(newProfile.get('id'));

(await UserProfileRepository.find()).get('id') === newProfile.get('id'); // true