4

Before you assume this is a duplicate, I'm aware of these answers (among others):

Still, auto-creating a table doesn't work!

I've used different versions of Hibernate, Spring, even implemented class JpaConfig from JpaBaseConfiguration, and adding deference properties from common application properties

Expected result:

Running hbm2ddl schema update

Actual result:

Running hbm2ddl schema export

I see org.hibernate.cfj.Configuration Iterator<Table> getTableMappings() , but this method return emty list instead mapping class->table

Any help would be appreciated.

Application.yml:

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/task-manager
    username: postgres
    password: password
    schema: public
  jpa:
    generate-ddl: true
    hibernate:
      naming-strategy: ru.ssau.common.naming_strategy.CustomNamingStrategy
      ddl-auto: create-drop

logging:
  level:
    org:
      hibernate:
        SQL: DEBUG
        type:
          descriptor:
            sql:
              BasicBinder: TRACE

Adding property driverClassName doesn't resolve it:

My entity:

@Entity(name = "simple_user")
public class User extends PersistentObject {

    @Column(unique = true, nullable = false)
    private String nickname;


    @OneToOne
    @JoinColumn(name = "user_account_id")
    private UserAccount userAccount;

    public User() {
    }

    public User(String nickname) {
        this.nickname = nickname;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public UserAccount getUserAccount() {
        return userAccount;
    }

    public void setUserAccount(UserAccount userAccount) {
        this.userAccount = userAccount;
    }
}

Hibernate's output from console:

HHH000412: Hibernate Core {4.3.11.Final}
HHH000206: hibernate.properties not found
HHH000021: Bytecode provider name : javassist
HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL9Dialect
HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
HHH000397: Using ASTQueryTranslatorFactory
HHH000227: Running hbm2ddl schema export
HHH000230: Schema export complete

2 Answers 2

1

Just add to your configuration following :

spring:
  jpa:
    hibernate:
        ddl-auto: none
    properties:
        hibernate.hbm2ddl.auto: create-drop

Works well for me, using 1.4.3.RELEASE.

Sign up to request clarification or add additional context in comments.

4 Comments

Yes, I've added this property, but it doesn't work :(
might be it is required to run this twice: (you have had a database structure from your previous run, which haven't been dropped, so during startup hibernate will try to create the database structure, but will fail, because tables already present; then you stop your application and drop cycle works. within next startup the structure should be created)
nevertheless hibernate's ddl-auto routines are bad practice, from my point of view. I personally use this during my unit-tests. and for production and integration testing I do use liquibase, which I highly recommend to introduce in project.
I did this way 1) Delete old database 2) Create new empty database with old name (task-manager) Thank you for idea with liquibase. I'll try it later.
-2

I'm facing the same, but in my case just one of the various entitys is not automaticaly created on my database, let´s try to solve together.

My entitys seens like:

@Entity
@Table(name = "tablename")
public class ClassName {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)

    private long id;
    ...

Try to put the annotations like above and tell me if works.

Tks.

1 Comment

The question is not about auto generating Id, it's about table not being created

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.