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

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

14
いつ、なぜJPAエンティティはSerializableインターフェースを実装する必要がありますか?
質問はタイトルにあります。以下では、私の考えと調査結果のいくつかを説明しました。 私が非常に単純なドメインモデル(リレーションなしの3つのテーブル)を持っている場合、すべてのエンティティがSerializableを実装していませんでした。 しかし、ドメインモデルがより複雑になると、RuntimeExceptionが発生し、私のエンティティの1つがSerializableを実装していないと言われました。 JPA実装としてHibernateを使用しています。 私は疑問に思う: ベンダー固有の要件/動作ですか? シリアル化可能なエンティティはどうなりますか?保存または転送のためにシリアライズ可能にする必要がありますか? エンティティをシリアル化できるようにする必要があるのはいつですか。

7
Spring ControllerでJPAおよびHibernateとのFetchType.LAZY関連付けをフェッチする方法
私はPersonクラスを持っています: @Entity public class Person { @Id @GeneratedValue private Long id; @ManyToMany(fetch = FetchType.LAZY) private List<Role> roles; // etc } 怠惰な多対多の関係で。 私のコントローラーには @Controller @RequestMapping("/person") public class PersonController { @Autowired PersonRepository personRepository; @RequestMapping("/get") public @ResponseBody Person getPerson() { Person person = personRepository.findOne(1L); return person; } } そして、PersonRepositoryはこのガイドに従って書かれたまさにこのコードです public interface PersonRepository extends …


3
JPAとSpring Data JPAの違いは何ですか?
Spring Data-JPAとJPAの違いについて少し混乱しています。JPAについては、人気のORMテクノロジーを使用してJavaオブジェクトをリレーショナルデータベースに永続化するための仕様であることを知っています。 言い換えれば、JPAはインターフェースやその他のORMテクノロジーを提供し、JPAプロバイダー(Hibernateなど)として知られるインターフェースを実装します。 さて、Spring Data JPAとは正確には何ですか? Spring Data JPAはJPAを介していくつかの機能(インターフェース)を追加しましたが、それでも指定されているだけですか、それともJPAプロバイダーでもありますか? Spring Data JPAがリポジトリー(DAOレイヤー:私が間違っていない場合)を回避するのを見ました。つまり、「Spring Data JPA + Hibernate」を使用する場合と「Hibernate」指示のみを使用する場合とではどのように違うのでしょうか。

8
1対多、多対1、多対多の違いは?
わかりましたので、これはささいな質問かもしれませんが、違いを視覚化して理解し、それぞれをいつ使用するか理解できません。また、単方向マッピングや双方向マッピングなどの概念が1対多/多対多の関係にどのように影響するかについても、少し不明確です。私は現在Hibernateを使用しているので、ORM関連の説明があれば役に立ちます。 例として、次の設定があるとします。 public class Person{ private Long personId; private Set<Skill> skills; //Getters and setters } public class Skill{ private Long skillId; private String skillName; //Getters and setters } したがって、この場合、どのようなマッピングが必要になりますか?この特定の例に対する回答は間違いなく高く評価されていますが、1対多と多対多のどちらを使用するか、結合テーブルと結合列を使用する場合と単方向と双方向を使用する場合の概要についても教えてください。


30
Hibernate-バッチ更新が更新から予期しない行数を返しました:0実際の行数:0が必要です:1
次の休止状態エラーが発生します。問題の原因となっている機能を特定できます。残念ながら、関数にはいくつかのDB呼び出しがあります。hibernateがトランザクションの最後にセッションをフラッシュするため、問題を引き起こす行を見つけることができません。下記の休止状態エラーは一般的なエラーのように見えます。どのBeanが問題の原因であるかについても言及されていません。この休止状態のエラーを知っている人はいますか? org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1 at org.hibernate.jdbc.BatchingBatcher.checkRowCount(BatchingBatcher.java:93) at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:79) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransacti onManager.java:500) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManag er.java:473) at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(Transaction AspectSupport.java:267) …
140 java  hibernate 

18
Hibernate JPAシーケンス(非ID)
識別子ではない/複合識別子の一部ではない一部の列にDBシーケンスを使用することは可能ですか? 私はjpaプロバイダーとしてhibernateを使用しており、(シーケンスを使用して)生成された値であるいくつかの列を持つテーブルがありますが、それらは識別子の一部ではありません。 私が欲しいのは、シーケンスの列が主キー(の一部)ではないエンティティの新しい値を作成するためにシーケンスを使用することです。 @Entity @Table(name = "MyTable") public class MyEntity { //... @Id //... etc public Long getId() { return id; } //note NO @Id here! but this doesn't work... @GeneratedValue(strategy = GenerationType.AUTO, generator = "myGen") @SequenceGenerator(name = "myGen", sequenceName = "MY_SEQUENCE") @Column(name = "SEQ_VAL", unique = false, nullable = …
138 java  hibernate  jpa  sequence 

3
@Columnは@ManyToOneプロパティでは許可されていません
プロパティが次のように設定されているJPAエンティティがあります @ManyToOne @Column(name="LicenseeFK") private Licensee licensee; しかし、JBoss 6にデプロイすると、アプリケーションが次のエラーをスローします。 org.hibernate.AnnotationException: @Column(s) not allowed on a @ManyToOne property JPA 2.0実装としてHibernate 3.5を使用しています。 外部キー列を参照するには何を使用すればよいですか?

4
単方向と双方向のJPAとHibernateの関連付けの違いは何ですか?
単方向と双方向の関連付けの違いは何ですか? dbで生成されたテーブルはすべて同じであるため、私が見つけた唯一の違いは、双方向の関連付けのそれぞれの側が他方を参照し、単方向ではないことです。 これは一方向の関連付けです public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private Group group; } public class Group { private int id; private String name; } 双方向の関連付け public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private …


11
JPA CascadeType.ALLが孤立を削除しない
次のマッピングでJPAを使用して孤立ノードを削除するのに問題があります @OneToMany (cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "owner") private List<Bikes> bikes; 孤立したロールがデータベースにぶら下がっている問題があります。 注釈org.hibernate.annotations.CascadeHibernate固有のタグを使用できますが、明らかにソリューションをHibernate実装に結び付けたくありません。 編集:JPA 2.0はこれに対するサポートを含むようです。
132 java  hibernate  orm  jpa  jpa-2.0 

2
SpringデータJPAのsaveとsaveAndFlushの違い
を介してCRUD操作をテストすることにより、Spring Data JPAを学習しようとしていJpaRepositoryます。 私は2つの方法に出くわしたsaveとsaveAndFlush。これら2つの違いはわかりません。呼び出すsaveと、私の変更はデータベースに保存されるので、の用途は何ですかsaveAndFlush。

11
JPAを使用するKotlin:デフォルトのコンストラクター地獄
JPAが必要とするように、@Entityクラスは、データベースからオブジェクトを取得するときにオブジェクトをインスタンス化するデフォルト(非引数)コンストラクターを持つ必要があります。 Kotlinでは、プロパティは次の例のように、プライマリコンストラクタ内で宣言するのに非常に便利です。 class Person(val name: String, val age: Int) { /* ... */ } ただし、非引数コンストラクターがセカンダリコンストラクターとして宣言されている場合、プライマリコンストラクターの値を渡す必要があるため、次のように、それらに有効な値が必要です。 @Entity class Person(val name: String, val age: Int) { private constructor(): this("", 0) } プロパティが単なるより複雑なタイプでStringありInt、null可能ではない場合、特にプライマリコンストラクターとinitブロックに多くのコードがあり、パラメーターがアクティブに使用されている場合、それらの値を提供することは完全に悪いように見えます- -それらがリフレクションによって再割り当てされる場合、ほとんどのコードが再度実行されます。 さらに、valコンストラクターの実行後に-propertiesを再割り当てできないため、不変性も失われます。 したがって、問題は、コードを重複させずに「マジック」初期値と不変性の損失を選択して、JPAで動作するようにKotlinコードをどのように適合させることができるかということです。 PS JPA以外のHibernateがデフォルトのコンストラクターなしでオブジェクトを構築できるのは本当ですか?

5
Hibernate openSession()とgetCurrentSession()
JSP WebアプリケーションでのHibernateの使用についていくつか質問があります。 の値はhibernate.current_session_context_class何ですか? 次に、次のステートメントのどれを使用する必要がありますか?なぜ? Session s = HibernateUtil.getSessionFactory().openSession(); Session s = HibernateUtil.getSessionFactory().getCurrentSession() 最後に、「Webアプリごとに1つのセッション」と「リクエストごとに1つのセッション」のどちらが適していますか?
130 java  hibernate 

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