春のJPAエンティティークラスは、DB表にない非DBのフィールドを含めることができます

JLP:

私は春のJPAとSpringBootと春データ休息を使用しています。私は、DBのテーブルと呼ばれるユーザーとこのテーブルのエンティティを持っています。私は、このアプリケーションのためのコントローラを持っていません。

@Entity
@Table(name = "USER")
public class User implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "USER_ID")
    private Integer userid;

    @Basic(optional = false)
    @Column(name = "USER_NAME")
    private String username;
} 

そして今、私は、ユーザーテーブルの列ではありませんもう一つのフィールドを追加する必要があります。それは目的を追跡するためのいくつかの監視ツールによって使用されます。

@Entity
@Table(name = "USER")
public class User implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "USER_ID")
    private Integer userid;

    @Basic(optional = false)
    @Column(name = "USER_NAME")
    private String username;

    private String tracer;  // this field is not in DB
} 

このクラスは、エンティティとして注釈されているので、理にかなって、このフィールドを、追加した後、無効な列名「トレーサー」 - 私はjdbc.spi.SqlExceptionHelperを取得しています。エンティティクラスに非DBフィールドを追加する方法があります:私の質問は、ということでしょうか?私はないと思い、誰かが解決策を持っている場合に知っていただきたいと思います。ありがとうございました。

ファビアーノ・オリベイラ:

はい、ちょうど注釈を追加し@Transient、あなたのフィールドに。

あなたはAPIドキュメントから詳細を読むことができます:

https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/Transient.html

そして、ここで(セクション37.1.2.1):

https://docs.oracle.com/javaee/7/tutorial/persistence-intro001.htm#BNBQA

それが役に立てば幸い。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=338026&siteId=1