⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 performance.po

📁 hibernate 开源框架的代码 jar包希望大家能喜欢
💻 PO
📖 第 1 页 / 共 5 页
字号:
msgid ""msgstr """Project-Id-Version: PACKAGE VERSION\n""Report-Msgid-Bugs-To: http://bugs.kde.org\n""POT-Creation-Date: 2007-10-25 07:47+0000\n""PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n""Last-Translator: FULL NAME <EMAIL@ADDRESS>\n""Language-Team: LANGUAGE <LL@li.org>\n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=UTF-8\n""Content-Transfer-Encoding: 8bit\n"#. Tag: title#: performance.xml:5#, no-c-formatmsgid "Improving performance"msgstr "Aumentando a performance"#. Tag: title#: performance.xml:8#, no-c-formatmsgid "Fetching strategies"msgstr "Estratégias de Fetching"#. Tag: para#: performance.xml:10#, no-c-formatmsgid """A <emphasis>fetching strategy</emphasis> is the strategy Hibernate will use ""for retrieving associated objects if the application needs to navigate the ""association. Fetch strategies may be declared in the O/R mapping metadata, ""or over-ridden by a particular HQL or <literal>Criteria</literal> query."msgstr """Uma <emphasis>estratégia de fetching</emphasis> é a estratégia que o ""Hibernate irá usar para buscar objetos associados se a aplicação precisar ""navegar pela associação. Estratégias de Fetch podem ser declaradas nos ""metadados de mapeamento O/R, ou sobrescritos por uma query HQL ou query com ""<literal>Criteria</literal>."#. Tag: para#: performance.xml:17#, no-c-formatmsgid "Hibernate3 defines the following fetching strategies:"msgstr "Hibernate3 define as seguintes estratégias de fetching:"#. Tag: para#: performance.xml:23#, no-c-formatmsgid """<emphasis>Join fetching</emphasis> - Hibernate retrieves the associated ""instance or collection in the same <literal>SELECT</literal>, using an ""<literal>OUTER JOIN</literal>."msgstr """<emphasis>Join fetching</emphasis> - o Hibernate busca o objeto ou coleção ""associada no mesmo <literal>SELECT</literal>, usando um <literal>OUTER JOIN</""literal>."#. Tag: para#: performance.xml:30#, no-c-formatmsgid """<emphasis>Select fetching</emphasis> - a second <literal>SELECT</literal> is ""used to retrieve the associated entity or collection. Unless you explicitly ""disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this ""second select will only be executed when you actually access the association."msgstr """<emphasis>Select fetching</emphasis> - um segundo <literal>SELECT</literal> ""é usado para buscar a entidade ou coleção associada. A menos que você ""desabilite lazy fetching especificando <literal>lazy=\"false\"</literal>, ""esse segundo SELECT será executado apenas quando você acessar a associação."#. Tag: para#: performance.xml:39#, no-c-formatmsgid """<emphasis>Subselect fetching</emphasis> - a second <literal>SELECT</literal> ""is used to retrieve the associated collections for all entities retrieved in ""a previous query or fetch. Unless you explicitly disable lazy fetching by ""specifying <literal>lazy=\"false\"</literal>, this second select will only ""be executed when you actually access the association."msgstr """<emphasis>Subselect fetching</emphasis> - um segundo <literal>SELECT</""literal> será usado para buscar as coleções associadas de todas as entidades ""buscadas na query ou fetch anterior. A menos que você desabilite lazy ""fetching especificando <literal>lazy=\"false\"</literal>, esse segundo ""SELECT será executado apenas quando você acessar a associação."#. Tag: para#: performance.xml:48#, no-c-formatmsgid """<emphasis>Batch fetching</emphasis> - an optimization strategy for select ""fetching - Hibernate retrieves a batch of entity instances or collections in ""a single <literal>SELECT</literal>, by specifying a list of primary keys or ""foreign keys."msgstr """<emphasis>Batch fetching</emphasis> - uma opção de otimização para o Select ""Fetching – O Hibernate busca um lote de instâncias ou entidades usando um ""único <literal>SELECT</literal>, especificando uma lista de chaves primárias ""ou chaves estrangeiras."#. Tag: para#: performance.xml:57#, no-c-formatmsgid "Hibernate also distinguishes between:"msgstr "O Hibernate distingue também entre:"#. Tag: para#: performance.xml:63#, no-c-formatmsgid """<emphasis>Immediate fetching</emphasis> - an association, collection or ""attribute is fetched immediately, when the owner is loaded."msgstr """<emphasis>Immediate fetching</emphasis> - uma associação, coleção ou ""atributo é buscado como ela é carregada (Qual SQL é usado). Não se confuda ""com eles! Nós usamos fetch para melhorar a performance. Nós podemos usar ""lazy para definir um contrato para qual dado é sempre disponível em qualquer ""instância desanexada de uma classe qualquer. imediatamente, quando o pai é ""carregado."#. Tag: para#: performance.xml:69#, no-c-formatmsgid """<emphasis>Lazy collection fetching</emphasis> - a collection is fetched when ""the application invokes an operation upon that collection. (This is the ""default for collections.)"msgstr """<emphasis>Lazy collection fetching</emphasis> - a coleção é buscada quando a ""aplicação invoca uma operação sobre aquela coleção (Esse é o padrão para ""coleções)"#. Tag: para#: performance.xml:76#, no-c-formatmsgid """<emphasis>\"Extra-lazy\" collection fetching</emphasis> - individual ""elements of the collection are accessed from the database as needed. ""Hibernate tries not to fetch the whole collection into memory unless ""absolutely needed (suitable for very large collections)"msgstr """<emphasis>\"Extra-lazy\" collection fetching</emphasis> - elementos ""individuais de uma coleção são acessados do banco de dados quando preciso. O ""Hibernate tenta não buscar a coleção inteira dentro da memória ao menos que ""seja absolutamente preciso. (indicado para coleções muito grandes)"#. Tag: para#: performance.xml:84#, no-c-formatmsgid """<emphasis>Proxy fetching</emphasis> - a single-valued association is fetched ""when a method other than the identifier getter is invoked upon the ""associated object."msgstr """<emphasis>Proxy fetching</emphasis> - uma associação de um valor é carregada ""quando um método diferente do getter do identificador é invocado sobre o ""objeto associado."#. Tag: para#: performance.xml:91#, no-c-formatmsgid """<emphasis>\"No-proxy\" fetching</emphasis> - a single-valued association is ""fetched when the instance variable is accessed. Compared to proxy fetching, ""this approach is less lazy (the association is fetched even when only the ""identifier is accessed) but more transparent, since no proxy is visible to ""the application. This approach requires buildtime bytecode instrumentation ""and is rarely necessary."msgstr """<emphasis>\"No-proxy\" fetching</emphasis> - uma associação de um valor é ""carregada quando a variável da instância é carregada. Comparada com a proxy ""fetching, esse método é menos preguiçoso (lazy)(a associação é carregada ""somente quando o identificador é acessada) mas é mais transparente, já que ""não há proxies visíveis para a aplicação. Esse método requer instrumentação ""de bytecodes em build-time e é raramente necessário."#. Tag: para#: performance.xml:101#, no-c-formatmsgid """<emphasis>Lazy attribute fetching</emphasis> - an attribute or single valued ""association is fetched when the instance variable is accessed. This approach ""requires buildtime bytecode instrumentation and is rarely necessary."msgstr """<emphasis>Lazy attribute fetching</emphasis> - um atributo ou associação de ""um valor é carregada quanto a varíavel da instância é acessada. Esse método ""requer instrumentação de bytecodes em build-time e é raramente necessário."#. Tag: para#: performance.xml:110#, no-c-formatmsgid """We have two orthogonal notions here: <emphasis>when</emphasis> is the ""association fetched, and <emphasis>how</emphasis> is it fetched (what SQL is ""used). Don't confuse them! We use <literal>fetch</literal> to tune ""performance. We may use <literal>lazy</literal> to define a contract for ""what data is always available in any detached instance of a particular class."msgstr """Nós temos aqui duas noções ortogonais: <emphasis>quando</emphasis> a ""associação é carregada e <emphasis>como </emphasis> ela é carregada (Qual ""SQL é usado). Não se confuda com eles! Nós usamos <literal>fetch</literal> ""para melhorar a performance. Nós podemos usar lazy para definir um contrato ""para qual dado é sempre disponível em qualquer instância desconectada de uma ""classe qualquer."#. Tag: title#: performance.xml:119#, no-c-formatmsgid "Working with lazy associations"msgstr "Inicializando coleções e proxies"#. Tag: para#: performance.xml:121#, no-c-formatmsgid """By default, Hibernate3 uses lazy select fetching for collections and lazy ""proxy fetching for single-valued associations. These defaults make sense for ""almost all associations in almost all applications."msgstr """Por padrão, o Hibernate3 usa busca preguiçosa para coleções e busca ""preguiçosa com proxy para associações de um valor. Esses padrões fazem ""sentido para quase todas as associações em quase todas a aplicações."#. Tag: para#: performance.xml:127#, no-c-formatmsgid """<emphasis>Note:</emphasis> if you set <literal>hibernate.""default_batch_fetch_size</literal>, Hibernate will use the batch fetch ""optimization for lazy fetching (this optimization may also be enabled at a ""more granular level)."msgstr """<emphasis>Veja:</emphasis> se voce setar <literal>hibernate.""default_batch_fetch_size</literal>, O Hibernate irá usar otimização de ""carregamento em lote para o carregamento preguiçoso(Essa otimização pode ser ""também habilitada em um nível mais fino)."#. Tag: para#: performance.xml:134#, no-c-formatmsgid """However, lazy fetching poses one problem that you must be aware of. Access ""to a lazy association outside of the context of an open Hibernate session ""will result in an exception. For example:"msgstr """Porém, a busca preguiçosa tem um problema que você precisar saber. Acesso a ""associações preguiçosas fora do contexto de uma sessão aberta do Hibernate ""irá resultar numa exceção. Por exemplo:"#. Tag: programlisting#: performance.xml:140#, no-c-formatmsgid """<![CDATA[s = sessions.openSession();\n""Transaction tx = s.beginTransaction();\n""            \n""User u = (User) s.createQuery(\"from User u where u.name=:userName\")\n""    .setString(\"userName\", userName).uniqueResult();\n""Map permissions = u.getPermissions();\n""\n""tx.commit();\n""s.close();\n""\n""Integer accessLevel = (Integer) permissions.get(\"accounts\");  // Error!]]>"msgstr ""#. Tag: para#: performance.xml:142#, no-c-formatmsgid """Since the permissions collection was not initialized when the ""<literal>Session</literal> was closed, the collection will not be able to ""load its state. <emphasis>Hibernate does not support lazy initialization for ""detached objects</emphasis>. The fix is to move the code that reads from the ""collection to just before the transaction is committed."msgstr """Como a coleção de permissões não foi inicializada quando a <literal>Session</""literal> foi fechada, a coleção não poderá carregar o seu estado. O ""Hibernate não suporta inicialização preguiçosa para objetos desconectados. ""Para consertar isso, é necessário mover o código que carrega a coleção para ""antes da transação ser comitada."#. Tag: para#: performance.xml:150#, no-c-formatmsgid """Alternatively, we could use a non-lazy collection or association, by ""specifying <literal>lazy=\"false\"</literal> for the association mapping. ""However, it is intended that lazy initialization be used for almost all ""collections and associations. If you define too many non-lazy associations ""in your object model, Hibernate will end up needing to fetch the entire ""database into memory in every transaction!"msgstr """Alternativamente, nós podemos usar uma coleção ou associação não preguiçosa, ""especificando <literal>lazy=\"false\"</literal> para o mapeamento da ""associação. Porém, é pretendido que a inicialização preguiçosa seja usada ""por quase todas as coleções e associações. Se você definir muitas ""associações não preguiçosas em seu modelo de objetos, o Hibernate irá ""precisar carregar o banco de dados inteiro na memória em cada transação!"#. Tag: para#: performance.xml:159#, no-c-formatmsgid """On the other hand, we often want to choose join fetching (which is non-lazy ""by nature) instead of select fetching in a particular transaction. We'll now ""see how to customize the fetching strategy. In Hibernate3, the mechanisms ""for choosing a fetch strategy are identical for single-valued associations ""and collections."msgstr """Por outro lado, nós geralmente escolhemos join fetching (que é não ""preguiçosa por natureza) ao invés de select fetching em uma transação ""particular. Nós iremos ver como customizar a estratégoa de busca. No ""Hibernate3, os mecanismos para escolher a estratégia de fetching são ""identicos para as associações simples e para coleções."#. Tag: title#: performance.xml:170#, no-c-formatmsgid "Tuning fetch strategies"msgstr "Personalizando as estratégias de busca"#. Tag: para#: performance.xml:172#, no-c-formatmsgid """Select fetching (the default) is extremely vulnerable to N+1 selects ""problems, so we might want to enable join fetching in the mapping document:"msgstr """O select fetching (o padrão) é extremamente vunerável para N+1 problemas em ""select, então nós iremos querer habilitar o join fetching no documento de ""mapeamento:"#. Tag: programlisting#: performance.xml:177#, no-c-formatmsgid """<![CDATA[<set name=\"permissions\" \n""            fetch=\"join\">\n""    <key column=\"userId\"/>\n""    <one-to-many class=\"Permission\"/>\n""</set]]>"msgstr ""#. Tag: programlisting

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -