Simplicando o Hibernateの有用性 - Crivando Uma Aplicaは、単純な利用を簡素化します


チュートリアル:クォークカス — Simplicando o Hibernateの有用性 — Crivando Uma Aplicaは、単純な利用を簡素化します






イントロダクション


エステArtigo To o objetivoデapresentar馬Abrestivarは、単純なPriplecenaを作成します.Java Conhecem A Megoria dos desenvolededes a a a a a a a a a a a a a a a a a a a a exo aJPA (Java Persistence API) , キューバのインターフェースcomum paraフレームワークque trabalham comは、ニンニクデダドスを主張します.Ma - Conhecidas es ' Hi HibernateにおけるMa Dasの実装
HibernateのフレームワークORM (Mapeamento Objeto Relacional) , <資料>クック・オベッティオ,『ファシリティ・オ・メイタメント』,アトリビュート,ダルオス,アマ・クラッセ.
例示的なAbaixo、PodemosヴァーダーマダスForasは、Priventaを作成します.Primeiro Trecho de C ' didgo , Cera ' s ' s O ' oの観測EntityManagerFactory E em segiaは、a a a a a a a a a a a a o o umEntityManager , Por fim、Consultaは、クリダRetornando AリストデCarrosです.

<資料>比較のための比較的研究( 2 )

O objetivo do Panache é simplificar a camada de persistência, principalmente das operações triviais.


例示的なAbaixo、Podemosヴァー- uma Implentaは、無関心なoパラサルバウムObjeto Carro no BancoデDadosです.<研究報告>ディゴー:ディオカト・カルロの『クリタネ』「ポピュラ」、エム・セージァ、オコラA .アンデスデサルバールo objetoは、necessに乗りますリオabrirは、conexは、o、salvar o carro e em seega realizar oコミットです.アンテデTerminar A execuは、o o o oをmにします.

<研究ノート>アパルスチーラ・ダ・ケラムhttps://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/#trabalhando-com-os-objetos-o-entitymanager
いいえCはディンゴフォンテAbaixo、セグエAの実装者は、Solvarのoサルヴァ、Utilizando o panache.

Para utilizar os benefícios do Panache é necessário que a entidade estenda a classe PanacheBaseEntity. Dessa forma, a Classe que herda terá diversos métodos prontos para serem utilizados.


Voltandoパラオo c c didioは、na primeira parte do c go dio o carro are instanciado e「populado」、em seega、invoca o m m totoestエヌtico(persist)da classe carro para salvar o objeto no banco de dados、para finalizar devolve o objeto para a rensi miso o o rest

O Panache é responsável por gerenciar toda a transação, desde da abertura, commit e o fechamento da transação.

A ideia é facilitar a implementação, melhorando assim a produtividade, já que o código fica bem mais simples, se comparado a forma tradicional.


ドゥ・ダス・クラッセ


AO Elenderは、Classse Panacheentitybase、Classse Herda v - Re m s Tes Dos teis、como : Listar Todos、Salvar、Atualizar、リムーバー、Buscar - um OobJto、Restornar Quantidade de objetos de uma determinada tabelaです.

Listando carros com o nome Fusca, basta escrever: Car.find(“name”, “fusca”);

Listando carros ordenados por nome, basta escrever: Car.find("order by name”)

Métodos da classe PanacheEntityBase, para mais detalhes, veja o código-fonte


Aliaio a a a d d m ' s todos que s no o o herdados , ao estender a classe panacheentitybase
  • 持続する — 永続的なUMA EntidadeなしBancoデダドス.
  • フラッシュ — Realiza Oコミットouロールバックをtodasとして渡します
  • フィンランド語 — ピサmeio do id
  • 見つける — Lista OS registrosデ馬Entidade.(『パラミスト・デ・コントロ』について)
  • フィンダル — Lista Todos os registrosデ馬Entidade.
  • リスト — atalho para find ()list ()
  • リストオール — atalho para findall ()list ()
  • カウント — Imagebeデregistrosデ馬Entidade.Voc - de Pode Passar um Peripha - Metro que opoponal
  • 削除する — リムーバーUMAのLista de objetosはBanco de Dadosを行う.
  • 削除 — を削除します.
  • パルテPR — ハンズ・オン


    パラファイナO ententtoは、フレームワークpanache、ser - azクリオum proproto em quarkus + panache e um banco de dados em postgres、mostrando os diversos cen - are rios em que o panache pode auxiliar o desenvolvorです.

    Para mais detalhes do Quarkus, veja o meu artigo:


    <研究ノート>イスパニカの『アパルカ』について

    <論文>ニシモト

  • <研究ノート>オーラル・プリサールデ・オーマIDE como porの例IntelliJ IDEA , Eclipse , VSCode .
  • インストールするJDK 8 or 11+
  • インストラクションApache Maven 3.5.3+ 王央Gradle
  • Panache Entity
  • Docker
  • エスコルハum Clienteパラコンコクトコムo Bancoデダドス、例:DBeaver , , アウトロー.
  • クリエンテパラRealizar Lensiは、es . es残りを休ませます:Postman 王央Insomnia .
  • インストルメント

  • Instalação do Docker (Documentação oficial)
  • : ( Youtube , ESR )
  • : ( Youtube : linuxtips )
  • YouTube -ウェリントン・ロガチ
  • エスコーda Aplica


    アゴラ、Vamos Criar Numa Aplica Stasivo o Desenvolvida com Oクォーク、利用可能なPanache + Hibernate Para Persistence Center NCIA、CDI E JAX - RSパラAPI API.

    A aplicação consiste em realizar Cadastro, Alteração, Atualização, Listagem, Paginação, Consultas Personalizadas e entre outras funcionalidades do Panache para gerenciar os Carros cadastrados no banco de dados.


    //クリエラ・パーソナリティはprojeto emクォークを行う
    MVN IOQuarkus Mavenプラグイン: 1.0.1 .ファイナルクリエイト
    \- dProjectGroupid = brCOM .自動車
    \- dprojectartifactid =クォークカスのパンクカー
    \- dclassname ="br . com . car . resource . carresource "
    - dpath ="/car "
    エムセガイア, vamos executar o projeto , atrav es s comdo :
    MVNコンパイルクォーツ
    NaveGador , acesse o endere o o :http://localhost:8080

    コンフィギュレーションO


    AdCononaは、Configuraを非難します.プロパティは、Naパスタリソースna raiz do projeto.

    データソースの設定


    クォークラスデータソース.URL = JDBC : Postgresql://localhost:5433/quarkus-パナッシュカー
    クォークラスデータソース.ドライバー= org.PostgreSQL.ドライバ
    クォークラスデータソース.ユーザ名
    クォークラスデータソース.パスワード= Postgres

    起動時にデータベースをドロップして作成します(スキーマを更新するだけで更新を使用します)


    クォークラスHibernate ORMデータベース.ドロップアンドクリエイト

    依存するnciasは、panacheなしpomをします。XML


    入出力クォークカス
    キルケスHibernate Orm panache
    入出力クォークカス
    クォーツKDBC PostgreSQL
    入出力クォークカス
    クレークス・レスタシーJSONB

    Observação: Para criar a massa de dados no início da aplicação, basta adicionar o arquivo import.sql, dentro da pasta resource do projeto.


    は、PostgreSQLのDockerを行う


    INFORRAMA SORY CHEN ES , INiciareMOS UMA INST Ant CIA : PostgreSQL , Usezando O Docker , Paris Isoso , Port - Esess - de Rio ter O Docker Instalado e - ent - de - O Executar O Comando Landado Abiio

    Criadando馬Instは、NCIAをしますPostgreSQL atravは、医者をします


    docker run -- name Postgres car - e "Postgresent password = Postgres "- p 5433 : 5432 - v ~/開発者/PostgreSQL :/var/lib/postgresql/data - D Postgres

    エンサイドダ・カー( O Modelo da aplicaの論文)


    エンティティ
    パブリッククラスCar PanacheEntityBaseを拡張する
    @Id  
    @GeneratedValue(strategy = GenerationType.IDENTITY)  
    private Long id;
    
    private String brand;
    
    private String name;
    
    @Column(name="model_year")  
    private LocalDate modelYear;
    
    @Column(name="created_date_time")  
    private LocalDateTime createdDateTime;
    
    @Column(name="is_available_sale")  
    private Boolean isAvailableSale;
    
    private BigDecimal price;
    
    //です

    Observação: O atributo Id (Chave Primária) é opcional, quando a classe estende o PanacheEntityBase


    アプシカについて


    パラフィンは、titios os tecos em duas partes、Primeira serを使用しています.Segunda Parteは、serの利用します.

    Observação 1: Outra forma seria criar uma camada de Serviço (Service) para “chamar” os métodos de uma classe DAO ou de um Repositório.

    Observação 2: Sinta-se a vontade para definir o melhor padrão de sufixos de nomes, exemplo: Camada do EndPoint (API/Rest): (Controller, EndPoint, …). Camada de Negócio: (Controller, Manager, Business, ….) e assim por diante.


    Los . Todos OS Carros ( Ver . Spro O 1 )


    パラAceessarは、a a a a de todos os carros、basta chamar o mテトリスエスト、tico da classe車、que es herdado a partirはpanacheentitybaseです.
    パス("/car ")
    を生成します.
    パブリッククラスCarresource {
    @GET  
    public List<Car> listAll() {  
        return Car.listAll();
    
    }
    

    ポストポストマン



    SustroリポジトリOh Na CLASSE DAOの実装<研究ノート> Clase Dao - Ouリポジトリ, Bastando Manifactor PanacheRepository , Conforme Oの例
    アプリケーション
    パブリッククラスCarRepository
    public List<Car> listAll() {  
        return listAll();  
    }
    
    //です
    実装されています.
    パス("/car/v 2 ")
    を生成します.
    パブリッククラスCarv 2 Resource {
    @Inject

    private CarRepository carRepository;

    @GET

    public List<Car> listAll() {

    return carRepository.listAll();

    }

    郵便配達人 — Listar Todos OS veは、culos naを返します


    <研究ノート> Negual , Quadan Implenado diretamente NA Classe do Endpoint da API

    Criando - um - ve - culculo ( Vol . 1 )


    Criando um veカロ、InvoCando o mは、todo estはtico da classe車、dentro da carresource(endpoint)、conforme例のabaixo:

    A anotação @Transactional é responsável por gerenciar a transação efetuando um commit ou um rollback na transação, caso seja necessário;


    トランザクション
    パブリックレスポンスクリエイト
    自動車.持続する
    レスポンスを返します.OK.status ( response . status . create ).組み込み関数()

    『カラ』の『進化論』


    いいえエンドポイントCarv 2 Resource、Bsta Chamar o mは、todoを保存します.
    クラス.ジャバ
    パブリックレスポンスクリエイト
    車リポジトリ.保存(車);
    レスポンスを返します.OK.status ( response . status . create ).組み込み関数()

    郵便配達人 — <研究ノート>カルトにおける行為の意味



    LosstandoのOS Carros Por


    //リソースジャバ
    ゲット
    パス("/listcarsbyyear ")
    パブリックリストlistcarsbyyear (@ queryparam ("year ") int year )
    車を返しなさい.を検索します.「年」で
    1年)list () ;

    NA Verは、O 2は、2つのリポジトリを使用しています.
    //v 2リソース.ジャバ
    ゲット
    パス("/listcarsbyyear ")
    パブリックリストlistcarsbyyear (@ queryparam ("year ") int year )
    復帰する.listcarsbyyear (年);

    を実装します.ジャバ
    //リポジトリジャバ
    パブリックリストListCysByyear ( int year )
    find ( "year ( modelyear )= year "を返します.("年",年)).list () ;

    郵便配達人 — <研究ノート> A・・・・・・



    アウトロスM .


    Listar Toos OS Carros que est est o dispon



    Listar todos os veは、culos ordenadosをpor nome e marcaに歌います.



    Listar Todosは、ve veを言います



    Curastradadadosの定量的方法

    Listar veは、culos com Pagina



    アキュリザルVE



    結論


    エスペゴque vocは、テナムゴスタード、Sinta seは、onongiarを批判します.ムラ壮大なabraは、oをeにします.

    ディゴフォンテ


    O ' d digo fonte est - in dispon res ' ve no endere - o ' o :https://github.com/marcuspaulo/quarkus-panache-car