«Я хочу, чтобы определенные столбцы в классе сущностей не создавали столбцы в таблице, есть ли решение или аннотация для этого» - PullRequest
0 голосов
/ 26 марта 2019
@Entity
@Table(name="PassengersDetails")
public class PassengerDO {
    @Id
    @GenericGenerator(name="inc",strategy="increment")
    @GeneratedValue(generator="inc")
    @Column(name="PassengerId")
    private int PassengerId;

    @Column(name="PassengerName")
    private String PassengerName;

    @Column(name="PassengerAddress")
    private String PassengerAddress;

    @Column(name="PassengerPhoneNo")
    private String PassengerPhoneNo;

    @Column(name="PassengerPassword")
    private String PassengerPassword;

    @Column(name="PassengerConfirmPassword")
    private String PassengerConfirmPassword;

"определенные столбцы в классе сущностей не должны создавать столбцы в таблица, есть ли решение или аннотация для этого "

в моем классе сущностей я не хочу хранить все столбцы в таблице, я хочу игнорировать определенные столбцы, вы можете помочь мне решить эту проблему

Ответы [ 4 ]

1 голос
/ 26 марта 2019

Для игнорирования любого поля из вашей модели вы можете использовать аннотацию @Transient (javax.persistence.Transient), чтобы он не проверял этот столбец в вашей базе данных.

1 голос
/ 26 марта 2019

Вы можете использовать аннотацию @ Transient , которая указывает провайдеру JPA не сохранять поле в базе данных.

Указывает, что свойство или поле не являются постоянными . Используется для аннотировать свойство или поле класса сущности, сопоставленного суперкласса или встраиваемый класс.

    @Entity
    public class Employee {
        @Id int id;
        @Transient User currentUser;
        ...
    }

Вы можете обратиться к API

0 голосов
/ 26 марта 2019

Если вы хотите, чтобы ваш столбец не вставлялся и не обновлялся, вы можете сделать столбец insertable=false и updatable=false.

Цитирование из JBoss Hibernate Документы :

вставляемый (необязательно): будет ли столбец частью оператора вставки (по умолчанию true)

обновляемый (необязательно): будет ли столбец частью инструкции обновления (по умолчанию true)

Если вы хотите, чтобы PassengerPhoneNo не вставлялся и не обновлялся в таблице базы данныхВы можете иметь insertable = false и updatable=false, как показано ниже:

@Column(name="PassengerPhoneNo", insertable =  false, updatable = false)
private String PassengerPhoneNo;
0 голосов
/ 26 марта 2019

, если вы хотите использовать этот столбец для целей расчета и не хотите сохранять в базе данных, тогда @Transient аннотация работает для вас.

Например, если вы не хотите сохранять столбец PassengerAddressзатем объявите таким образом.

@Transient
private String PassengerAddress;

Или другой вариант - использовать частичный класс, т.е. удалить этот столбец из класса.используйте только те столбцы, которые вы хотите сохранить в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...