問題タブ [spring-data-rest]
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 - Spring-data restで参照オブジェクトを更新するには?
例:クラス Course と Teacher が多対 1 の関係にある場合、Spring-data rest を介して特定のコースの教師を変更する方法は?
応答:
応答:
上記のように、コース 2 は教師 1 に関連付けられていますが、教師を教師 2 に変更するにはどうすればよいですか?
私が試してみました:
コース名が正常に更新されました:
PUT http://localhost:7070/study-spring-data/course/2
ペイロード付き
参照オブジェクトの教師を更新しようとして失敗しました:
ペイロード付き
ありがとう!
java - Spring Data Rest は外部キーを更新しません
だから、私は2つのエンティティを持っています:
私の Orders テーブルは次のようになります (実際にはそうではありませんが、アイデアはわかります)。
PUT
これで、リソースに対して を実行するとOrders
、1 日中数量を変更できます。しかし、結果を変えようとしてproduct_id
も何も起こりません。注文を照会して製品を参照できるため、マッピングは正しいはずです。
しかし、参考までに、私のマッピングは次のようになります。
私が見逃しているものはありますか?
ああ、SQL Server 2008 を使用して、spring-data-rest-webmvc 1.0.0-RELEASE、spring-data-jpa
ありがとう。
spring - Spring Data REST は JPA @Version をサポートしていますか?
@Version
Spring Data REST でJPA を使用できますか?
Spring Data REST 1.1.0.M1 では、エンティティ ID を公開するようにリポジトリ エクスポーターを構成できます。これにより、@Version
注釈付きフィールドも公開されます。PUT
そのため、古いバージョン番号のエンティティにアクセスしようとすると、 OptimisticLockException
. しかし、それは起こりません。代わりにPUT
、バージョン番号が、設定した古いバージョンではなく、常に厳密にインクリメントされることを除いて、(データの更新を含めて) 成功します。
ここで、動作が未定義であるため、バージョン番号を自分で設定することは想定されていないことを読みました。それは理にかなっている。しかし@Version
、エンティティへの参照ではなく、エンティティの JSON 表現しか持っていない場合、これは役に立たないようです。JSON 表現では、バージョン番号をサービスに送り返す必要があり、最終的にはcall setVersion()
、これは未定義の動作につながります。
状況を正しく理解していますか?@Version
Spring Data REST で使用できますか?
更新: Marten の応答を考慮して、楽観的なロック機能を実現するために JPA イベントを使用することになりました。ここにアプローチを書きました:
http://springinpractice.com/2013/09/14/optimistic-locking-with-spring-data-rest/
spring - Spring Data REST での認証と認可
Spring Data RESTベースのアプリを実装しています。このフレームワークまたは関連するフレームワークを使用して認証および承認ルールを実装するエレガントな方法があるかどうかを知りたいです。
REST サーバーへのすべての HTTP 要求は、認証ヘッダーを運ぶ必要があります。それらを確認し、HTTP メソッドと、認証されたユーザーと要求されているリソースとの関連付けに基づいて、承認するかどうかを決定する必要があります。たとえば、(アプリは e ラーニング システムの REST サーバーです)、インストラクターは自分のコース セクションにのみアクセスでき、学生は自分が購読しているコース セクションにのみアクセスできます。
Spring Data REST で承認を実装するデフォルトの方法があるかどうかを知りたいです。答えが「いいえ」の場合、私の問題について提案していただけますか? 私は考えています:
- サーブレット フィルタ
- 春のセキュリティ
- Spring Data REST Handlers (HTTP ヘッダーにアクセスする方法は?)
spring-data-jpa - Spring Data REST: エンティティ関係を追加するときのサイレント エラー
仲間のSpring Data REST愛好家、私はSpring Data REST 1.1アプリケーションを実行しており、リンクで説明されているように、curlを使用して「text/uri-list」コンテンツタイプを使用してエンティティ関係を追加しようとしています: Example-API-使用法とカール。
残念ながら、サーバーは「201 Created」を返しますが、本文には空の JSON オブジェクトが含まれており、エンティティ関係は作成されません。
SQL UPDATE が実行されることを期待しますが、SQL を分析すると、SELECT ステートメントのみが発生することがわかります。
興味深いことに、データベース クライアントで SQL ステートメントを実行してリレーションシップを「手動で」追加すると、次のようになります。
次に、curl ステートメントを実行します。
ハイパーメディア リンクを介して、Spring Data REST が Hero エンティティと Enemy エンティティ間の 1 対多の関係を認識することを示す JSON 表現を取得します。
これは、次の記事をガイドとして使用して、Spring Data REST が追加されている既存の Spring MVC アプリです。
H2 データベースと MySQL データベースの両方を使用してみましたが、結果は同じでした。以下は、私の JPA エンティティ、Spring Data JPA リポジトリ、アプリケーション コンテキスト、および web.xml です。
Hero.java
Enemy.java
HeroRepository.java
EnemyRepository.java
root-context.xmlには以下が含まれます。
web.xmlには以下が含まれます。
何か案は?ありがとう!
spring-data-rest - イベント「beforeLinkSave」および「afterLinkSave」
Sprind データ REST で検証イベントがどのように機能するかを理解しようとしています。データ ソースに新しい情報を保存する直前に「beforeSave」イベントが実行されることを理解しています。新しいデータの保存の最後に afterSave イベントが呼び出されることは理解しています。しかし、イベント「beforeLinkSave」と「afterLinkSave」がいつ実行されるのかわかりません。
誰かが答えを知っていますか?
spring - 春のデータレストJARの違い
Maven リポジトリには 3 つの JAR があります。
spring-data-rest-core
spring-data-rest-repository
spring-data-rest-webmvc
webmvc
過去に JAR を使用したことがありますが、他のものをいつ、何を使用すればよいかわかりません。
洞察はありますか?