LoginSignup
0
0

More than 5 years have passed since last update.

JPAのModelでメンバ変数を作る方法

Posted at

当方、java歴一ヶ月未満の初心者です。
自分用の備忘録として残します。


やりたかった事

tableからfindしてきたmodelのクラスに
カラムに存在しないフィールド名のパラメータを持たせたかった。
phpでは(あまりおすすめできないけど)そのまま変数宣言すれば普通に使えたので
javaでもできると思った。

だめだった例

Hogeテーブルにnameカラムは無く
外部からとってきたり、動的にhogeで処理させたいような時

@Entity
public class hoge {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;

こうしたら

Caused by: java.sql.SQLException: Column 'name' not found.

怒られた。
PHPみたいに、nullで入ってたりはくれず
見るデータがないからダメらしい

解決法

@Transientアノテーションを使って、マッピング対象外にする。
本来は永続化対象外にする為のアノテーションらしいが
その影響でマッピング対象外になるらしい(違かったらすいません)

@Entity
public class hoge {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Transient
    private String name;

怒られなくなりました


javaを勉強していると
いかに自分がPHPで適当なコーディングしていたかがよく分かります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0