タグ付けされた質問 「hibernate」

HibernateはJava言語用のオブジェクトリレーショナルマッピング(ORM)ライブラリであり、開発者はアプリケーションでPOJOスタイルのドメインモデルをオブジェクト/リレーショナルマッピングをはるかに超える方法で利用できます。

13
Hibernate hbm2ddl.auto構成の可能な値とは何ですか?
更新、エクスポート、およびhibernate.hbm2ddl.auto 更新を使用するタイミングと使用しないタイミングを知るために必要な値について、もっと知りたいのですが?そして代替は何ですか? これらは、DBで発生する可能性のある変更です。 新しいテーブル 古いテーブルの新しい列 列を削除しました 列のデータ型が変更されました 列のタイプがその属性を変更した ドロップされたテーブル 列の値が変更されました どちらの場合も、最善の解決策は何ですか?
1085 java  hibernate  hbm2ddl 

22
JPAとHibernateの違いは何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 2年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 JPA 2は仕様であり、HibernateはORMのツールであることを理解しています。また、HibernateにはJPA 2よりも多くの機能があることを理解しています。しかし、実際的な観点から見ると、実際の違いは何ですか? iBatisの使用経験があり、現在HibernateまたはJPA2のいずれかを習得しようとしています。Pro JPA2の本を手に取りましたが、それでも「JPAプロバイダー」を参照し続けています。例えば: 機能を標準化する必要があると思われる場合は、発言してJPAプロバイダーにリクエストする必要があります。 これは私を混乱させるので、いくつか質問があります: JPA2を単独で使用すると、POJOに注釈を付けるだけでDBからデータをフェッチできます JPA2は、TopLinkやHibernateなどの「JPAプロバイダー」で使用することになっていますか?その場合、JPA2単独と比較した場合、またはHibernate単独と比較した場合、JPA2 + Hibernateを使用する利点は何ですか? あなたは良い実用的なJPA2本をお勧めできますか?「プロJPA2」は、聖書とJPA2のリファレンスのように見えます(本の後半までは、クエリには入りません)。JPA2への問題/解決アプローチを取る本はありますか?
680 java  hibernate  jpa  jakarta-ee  orm 



8
JPA @OneToManyアソシエーションを使用する場合の@JoinColumnとmappedByの違いは何ですか
違いは何ですか: @Entity public class Company { @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY) @JoinColumn(name = "companyIdRef", referencedColumnName = "companyId") private List<Branch> branches; ... } そして @Entity public class Company { @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY, mappedBy = "companyIdRef") private List<Branch> branches; ... }
516 java  hibernate  jpa  orm  one-to-many 

15
HibernateがMultipleBagFetchExceptionをスローします-複数のバッグを同時にフェッチできません
Hibernateは、SessionFactoryの作成中にこの例外をスローします。 org.hibernate.loader.MultipleBagFetchException:複数のバッグを同時にフェッチできない これは私のテストケースです: Parent.java @Entity public Parent { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy="parent", fetch=FetchType.EAGER) // @IndexColumn(name="INDEX_COL") if I had this the problem solve but I retrieve more children than I have, one child is null. private List<Child> children; } Child.java @Entity public Child { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; …
471 java  hibernate  jpa  one-to-many  bag 

5
Hi / Loアルゴリズムとは何ですか?
Hi / Loアルゴリズムとは何ですか? これはNHibernateのドキュメントで見つかりました(一意のキーを生成する1つの方法、セクション5.1.4.2です)が、それがどのように機能するかについての適切な説明は見つかりませんでした。 私はNhibernateがそれを処理することを知っており、内部を知る必要はありませんが、興味があるだけです。

11
DAOとリポジトリのパターンの違いは何ですか?
データアクセスオブジェクト(DAO)とリポジトリパターンの違いは何ですか?Enterprise Java Beans(EJB3)、インフラストラクチャーとしてHibernate ORM、設計手法としてドメイン駆動設計(DDD)とテスト駆動開発(TDD)を使用してアプリケーションを開発しています。

4
完璧なJPAエンティティを作成する[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 私はしばらくの間JPA(実装Hibernate)を使用しており、エンティティを作成する必要があるたびに、AccessType、不変のプロパティ、equals / hashCodeなどの問題に悩まされています。 そこで、私は各問題の一般的なベストプラクティスを見つけ出して、個人用に書き留めることにしました。 しかし、誰かがそれについてコメントしたり、どこが間違っているかを教えたりしても構わないと思います。 エンティティークラス Serializableを実装する 理由:仕様では、そうする必要があると記載されていますが、一部のJPAプロバイダーはこれを強制していません。JPAプロバイダーとしてのHibernateはこれを強制しませんが、Serializableが実装されていない場合は、ClassCastExceptionで胃のどこかで失敗する可能性があります。 コンストラクタ エンティティのすべての必須フィールドを持つコンストラクタを作成します 理由:コンストラクターは、作成されたインスタンスを常に正常な状態にしておく必要があります。 このコンストラクターのほかに、パッケージのプライベートデフォルトコンストラクターがある 理由:Hibernateでエンティティを初期化するには、デフォルトのコンストラクターが必要です。プライベートは許可されますが、ランタイムプロキシの生成とバイトコードインスツルメンテーションなしの効率的なデータ取得には、パッケージプライベート(またはパブリック)の可視性が必要です。 フィールド/プロパティ 一般的にフィールドアクセスを使用し、必要に応じてプロパティアクセスを使用する 理由:どちらか一方について明確で説得力のある引数がないため、これはおそらく最も議論の余地のある問題です(プロパティアクセスとフィールドアクセス)。ただし、フィールドアクセスは、より明確なコード、より良いカプセル化、および不変フィールドのセッターを作成する必要がないため、一般的に好まれているようです 不変フィールドのセッターを省略(アクセスタイプフィールドには不要) プロパティはプライベートである可能性があります 理由:以前は(Hibernate)パフォーマンスの方がprotectedの方が優れていると聞きましたが、Webで見つけることができるのは:Hibernateがpublic、private、protectedのアクセサーメソッド、およびpublic、private、protectedフィールドに直接アクセスできることです。選択はあなた次第であり、アプリケーション設計に合うようにそれを一致させることができます。 Equals / hashCode エンティティを永続化するときにのみこのIDが設定されている場合は、生成されたIDを使用しないでください 優先度:不変の値を使用して一意のビジネスキーを形成し、これを使用して同等性をテストする 一意のビジネスキーを使用できない場合は、エンティティの初期化時に作成される非一時的なUUIDを使用します。詳細については、この素晴らしい記事を参照してください。 関連するエンティティ(ManyToOne)を参照しないでください。このエンティティ(親エンティティなど)をビジネスキーの一部にする必要がある場合は、IDのみを比較します。プロパティアクセスタイプを使用している限り、プロキシでgetId()を呼び出してもエンティティの読み込みはトリガーされません。 エンティティの例 @Entity @Table(name = "ROOM") public class Room implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue @Column(name …
422 java  hibernate  jpa  equals 


30
「ロールのコレクションを遅延して初期化できませんでした」Hibernate例外を解決する方法
私はこの問題を抱えています: org.hibernate.LazyInitializationException:役割のコレクションの遅延初期化に失敗しました:mvc3.model.Topic.comments、セッションがない、またはセッションが閉じられました これがモデルです: @Entity @Table(name = "T_TOPIC") public class Topic { @Id @GeneratedValue(strategy=GenerationType.AUTO) private int id; @ManyToOne @JoinColumn(name="USER_ID") private User author; @Enumerated(EnumType.STRING) private Tag topicTag; private String name; private String text; @OneToMany(mappedBy = "topic", cascade = CascadeType.ALL) private Collection<Comment> comments = new LinkedHashSet<Comment>(); ... public Collection<Comment> getComments() { return comments; …

15
Spring BootでSQLステートメントをログに記録する方法は?
SQLステートメントをファイルに記録したい。 私は次のプロパティを持っていますapplication.properties spring.datasource.url=... spring.datasource.username=user spring.datasource.password=1234 spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true security.ignored=true security.basic.enabled=false logging.level.org.springframework.web=INFO logging.level.org.hibernate=INFO logging.file=c:/temp/my-log/app.log アプリケーションを実行するとき cmd>mvn spring-boot:run コンソールでSQLステートメントを確認できますが、app.logファイルには表示されません。このファイルには、春の基本的なログのみが含まれています。 ログファイルにSQLステートメントを表示するにはどうすればよいですか?


20
JPA hashCode()/ equals()のジレンマ
JPAエンティティーと、JPAエンティティークラスにどの/ 実装を使用する必要があるか について、ここでいくつかの議論がありました。それらのほとんど(すべてではない)がHibernateに依存していますが、JPA-implementation-neutrally(ちなみに私はEclipseLinkを使用しています)について説明したいと思います。hashCode()equals() 考えられるすべての実装には、以下に関する独自の長所と短所があります。 hashCode()/equals()契約準拠のため(不変性)List/ Setオペレーション 同一のオブジェクト(たとえば、異なるセッションから、遅延ロードされたデータ構造からの動的プロキシ)を検出できるかどうか エンティティがデタッチ(または非永続)状態で正しく動作するかどうか 私が見る限り、3つのオプションがあります。 それらを上書きしないでください。頼りにしObject.equals()てObject.hashCode() hashCode()/ equals()仕事 同一のオブジェクトを識別できない、動的プロキシの問題 エンティティの分離に問題はありません 主キーに基づいてそれらを上書きする hashCode()/ equals()壊れている 正しいID(すべての管理対象エンティティ) 分離されたエンティティに関する問題 Business-Idに基づいてそれらをオーバーライドします(非主キーフィールド。外部キーはどうですか?) hashCode()/ equals()壊れている 正しいID(すべての管理対象エンティティ) エンティティの分離に問題はありません 私の質問は: オプションやプロ/コンポイントを逃しましたか? どのオプションを選択しましたか、またその理由は何ですか? 更新1: 「によってhashCode()/ equals()壊れている」、私はその連続した意味hashCode()(正しく実装時)の意味で壊れされていない、異なる値を返す可能性があります呼び出しをObjectAPIドキュメント、しかしから変更されたエンティティを取得しようとしたときにこれは問題を引き起こすMap、 Setまたは他のハッシュベースCollection。その結果、JPA実装(少なくともEclipseLink)が正しく動作しない場合があります。 更新2: あなたの答えをありがとう-それらのほとんどは驚くべき品質を持っています。 残念ながら、どのアプローチが実際のアプリケーションに最適か、または自分のアプリケーションに最適なアプローチをどのように決定するかはまだわかりません。だから、私は質問を開いたままにし、いくつかの議論や意見を期待します。

21
JPAおよびHibernate-基準とJPQLまたはHQL
基準またはHQLを使用する場合の長所と短所は何ですか?Criteria APIはHibernateでクエリを表現するための優れたオブジェクト指向の方法ですが、CriteriaクエリはHQLよりも理解/構築が難しい場合があります。 いつ基準を使用し、いつHQLを使用しますか?どのユースケースで何を好みますか?それとも単に好みの問題ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.