Fix: hibernate.InstantiationException: No default constructor for entity: User


Spring Boot: Exception Stack

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception 
[Request processing failed: org.springframework.orm.jpa.JpaSystemException: 
     No default constructor for entity:  : com.example.redisdemo.DbUser] with root cause

  org.hibernate.InstantiationException: No default constructor for entity:  : com.example.springboot.User
	at org.hibernate.metamodel.internal.EntityInstantiatorPojoStandard.instantiate(EntityInstantiatorPojoStandard.java:101)
       ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final]
	at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:5288)
       ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final]

The above exception is what you get when you do not have a default constructor not been defined in your Entity/POJO class when working with Spring Data JPA.

The default constructor (with no parameters) is required by the Java Persistence API (JPA) to create instances of the entity class.


Fix:

To fix this issue, you need to simply define a default constructor in your class that gave the exception.

@Entity
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    public DbUser(int userId, String userName) {
        this.userId = userId;
        this.userName = userName;
    }

    //Default Constructor Added
    public DbUser() {
    }

    @Id
    private int userId;

    @Column
    private String userName;

...
...


Fix - You need to add the Default Constructor
Author Info:

Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.

Follow him on: X

You can also reach out to him via e-mail: rakesh@code2care.org










Copyright © Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap