Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
![JPA 2.2での便利な改善](https://cdn-ak-scissors.b.st-hatena.com/image/square/02955ccf4ba8556bc832717c6e4cfa5863327ddc/height=288;version=1;width=512/https%3A%2F%2Fcdn.infoq.com%2Fstatics_s2_20240618082437%2Fstyles%2Fstatic%2Fimages%2Flogo%2Flogo-big.jpg)
JPA2.1で標準化されたDDL Generationを試してみました。 EntityEntityクラスの実装 package sample; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "user") public class UserEntity { private Long id; private String name; @Id @GeneratedValue() public Long getId() { return id; } public void setId(Long id) { this.id = id;
JPAのバージョンは2.1と前バージョンから0.1しか上がっていないが、非常にいいものが追加されている。 2.1の目玉機能としてはストアド呼び出しが可能になったとかあるのだろうが、基本ストアド使いたくないのでおいらは無視する。 で、地味・・・ではなくド派手なのにあまり語られない新機能もある。 それがコンバータだ。やっときた! これはどういうものかというと、たとえば、DB上には文字列で保存をして、Entity上はIntegerで保持するといったもの。 もちろん、ラッパクラス以外でもふつうに使えるので、アプリケーションに合わせて積極的にコンバータを作っておくと既存のDBを変更せず、かといってそれにEntity操作が引きずられない、非常に良いものが出来上がる。 コードは昨日のエントリのJPA2.0のサンプルをもとに変更してみよう。 addressという文字列型には都道府県が入っていたので、そこに
The default way in JPA for primary keys is to use the @GeneratedValue annotation with the strategy attribute set to one of AUTO, IDENTITY, SEQUENCE, or TABLE. You pick the most appropriate strategy for your situation and that's it. But you can also choose to generate the primary key yourself. Using UUIDs for this is ideal and has some great benefits. In our current project we've used this strategy
@Entityアノテーションと@Idアノテーション @Tableアノテーション @GeneratedValueアノテーション @Columnアノテーション @Transientアノテーション @MappedSuperclassアノテーション 次回は @Entityアノテーションと@Idアノテーション まずは、これが無いと始りません。@Entityは該当のクラスがエンティティであることを指定し、@Idはプライマリキーとなるプロパティかフィールドを指定します。 @Entity public class Customer { @Id private Long id; private String firstname; private String lastname; // ・・ } @Idは以下の様に指定することもできます。というかこっちの方が一般的か? @Id public Long getI
悲観的ロックとは † ※私はデータベースの専門家でもないですし、OracleやHibernateのエキスパートでもないのでココに書いてある内容は正しいかどうか保証できません。あしからずご了承ください Hibernate/楽観的ロックを実装する で楽観的ロックの実装については試してみました。次は悲観的ロックを試してみようと思います。悲観的ロックとは、複数のトランザクションが同じrowを更新してしまわないように、トランザクション中はそのrowを占有ロックしてしまおうという方法です。あるトランザクションがあるrowに対して悲観的ロックをかけると、他のトランザクションはそのrowを参照することができなくなります。ロックを取得したトランザクションが終了するまで待ちになったり、参照しようとした時点で例外になったりします。ようするにOracleなどでいうところのselect 〜 for updateの事
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く