Проблемы с использованием hbm2ddl в среде разработки - PullRequest
2 голосов
/ 31 января 2012

Я использую hbm2ddl для автоматического создания схемы, включив эту строку в конфигурацию:

<prop key="hibernate.hbm2ddl.auto">create</prop>

У меня есть объектный бин, определенный как:

@Entity
@Table(name = "user")
public class User {

    @Column(name = "firstname")
    private String firstName;

    @Column(name = "lastname")
    private String lastName;

    private String fullName;

}

Есть 3 атрибута, и мне нравятся первые два, которые будут сохранены в таблице базы данных, и мне нравится вычислять третий. Когда я запускаю hbm2ddl с параметром create, он создает все 3 столбца, хотя у меня нет примечания @Column в третьем.

Как я могу запретить Hibernate создавать последний атрибут в виде столбца?

Ответы [ 2 ]

3 голосов
/ 31 января 2012

@Transient определенно остановит это.

2 голосов
/ 31 января 2012

Примечание @Column не означает, что поле будет сохраняться. Это просто добавляет больше информации, например для генератора схемы.

Если вы не хотите, чтобы поле сохранялось (и при этом вы используете доступ к полю для своих сущностей), вы должны либо аннотировать его как @Transient, как указано NimChimpsky, либо использовать ключевое слово Java transient.

...