問題タブ [embeddable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ジャバJPA. Javaによって同じ(一意の)ように解釈される類似のレコードがいくつかある場合、DBから特定の行のみを選択する方法
このような状況があります: Hibernate で JPA を使用しており、DB からデータを取得したいと考えています。残念ながら、一意の制約の 2 つの異なるセットがあります。1 つはデータベース テーブルにあり、もう 1 つは Java エンティティに少し異なります。そこにアクセスできないため、DBで変更できません。また、アプリケーションの他の部分でエラーが発生する可能性があるため、Javaエンティティで変更することもできません。
Oracle Database にはテーブルFooがあります。内部には、2 つの同様のレコードがあります。
私のJavaエンティティは、パラメータに基づいてレコードが一意かどうかを決定します:
- リスト項目
- ACC_ID
- PLACE_ID
- インストール_ID
- DISM_DATE
- BOX_ID
- FOO_ID
- ACC_START_DATE
したがって、Foo エンティティに基づいて休止状態の選択クエリを実行した後、データベースからレコードを 1 つだけ取得します (java は、db からの両方の foo が同じであると考えているため)。
それは問題ありません (私は 1 つの結果を好む) が、これら 2 つのレコードのどちらを最後に取得するかをどうにかして指定できますか? この場合、ACTIVITY_FLAG = 'Y' (テーブルから最初ではなく、ランダムでもなく、最新でもない) で 1 つを取得したいとします。これは可能ですか?
現在、@Embeddable および @IdClass アノテーションを使用して、Java コードで一意のパラメーターを設定しています。
Foo.java クラス:
FooPK.java クラス:
アイデアをありがとう!
java - hibernate h2 埋め込み可能リストに期待される「識別子」
従業員エンティティ内で関数 (埋め込み可能) のリストを関連付けようとしていますが、H2 は「識別子」が必要であると言って不満を抱いているようです。
原因: org.h2.jdbc.JdbcSQLException: SQL ステートメントの構文エラー " CREATE TABLE EMPLOYEE_FUNCTIONS ( EMPLOYEE_EMPLOYEEID VARCHAR(255) NOT NULL, ACTIVE BOOLEAN NOT NULL, DEPARTMENTNUMBER INTEGER NOT NULL, DESCRIPTION VARCHAR(255), ORDER[*] INTEGER NOT NULL ) "; 期待される「識別子」;
問題は、私はすでに他のプロジェクトでそれを行っており、なぜそれが機能しないのかわかりません。
従業員.java
関数.java
必要のない Employee のいくつかのプロパティを削除しました。このエラーの原因は何ですか? 従業員の識別子として文字列を持っているためですか? もしそうなら、Hibernate に Employee_EmployeeID を識別子として追加するように指示するにはどうすればよいですか? ありがとう
java - @ElementCollection (Java-Hibernate) 内にリストを配置します。
@Embeddable @ElementCollection 内に LinkedList を配置しようとしていて、私に与えています: org.hibernate.MappingException
主要:
主なエンティティ:
埋め込みクラス:
エラー:
データベースに Advertiser オブジェクトを作成しようとすると、エラーがジャンプします。