最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

java + Hibernate demo api, org.hibernate.PropertyAccessException: Could not set value of type [java.lang.Long]: 'com.exa

programmeradmin4浏览0评论

I'm learning java Hibernate, when i save the user through api, there is an error, anyone can figure out what is the problem?

hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    ".0.dtd">

<hibernate-configuration>
    <session-factory>
        <!-- Database Connection Settings -->
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/spring_hibernate</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">Abcd1234</property>

        <!-- Hibernate Settings -->
        <property name="hibernate.dialect">.hibernate.dialect.MySQL8Dialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- Mapped Entity -->
        <mapping class="com.example.demo.model.User"/>
    </session-factory>
</hibernate-configuration>

HibernateUtil.java

package com.example.demo.config;

import com.example.demo.model.User;
import .hibernate.SessionFactory;
import .hibernate.cfg.Configuration;

public class HibernateUtil {

    private static final SessionFactory sessionFactory;

    static {
        try {
            sessionFactory = new Configuration()
                    .configure("hibernate.cfg.xml")
                    .addAnnotatedClass(User.class)
                    .buildSessionFactory();
        } catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

User.java

package com.example.demo.model;

import .hibernate.annotations.GenericGenerator;

import jakarta.persistence.*;

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

    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name = "increment", strategy = "increment")
    private Long id;

    private String name;
    private String email;

    // Constructors
    public User() {}

    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

UserDao.java

package com.example.demo.dao;

import com.example.demo.config.HibernateUtil;
import com.example.demo.model.User;
import .hibernate.Session;
import .hibernate.Transaction;
import java.util.List;

public class UserDAO {

    public List<User> getAllUsers() {
        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
            return session.createQuery("FROM User", User.class).list();
        }
    }

    public User getUserById(Long id) {
        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
            return session.get(User.class, id);
        }
    }

    public void saveUser(User user) {
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            session.save(user);
            transactionmit();
        } catch (Exception e) {
            if (transaction != null && transaction.isActive()) {
                transaction.rollback();
            }
            e.printStackTrace();
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }

    public void updateUser(Long id, User userDetails) {
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            User user = session.get(User.class, id);
            if (user != null) {
                user.setName(userDetails.getName());
                user.setEmail(userDetails.getEmail());
                session.update(user);
                transactionmit();
            }
        } catch (Exception e) {
            if (transaction != null && transaction.isActive()) {
                transaction.rollback();
            }
            e.printStackTrace();
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }

    public void deleteUser(Long id) {
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            User user = session.get(User.class, id);
            if (user != null) {
                session.delete(user);
                transactionmit();
            }
        } catch (Exception e) {
            if (transaction != null && transaction.isActive()) {
                transaction.rollback();
            }
            e.printStackTrace();
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }
}

UserController.java

package com.example.demo.controller;

import com.example.demo.dao.UserDAO;
import com.example.demo.model.User;
import .springframework.http.ResponseEntity;
import .springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/users")
public class UserController {

    private final UserDAO userDAO = new UserDAO();

    @GetMapping
    public List<User> getAllUsers() {
        return userDAO.getAllUsers();
    }

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        User user = userDAO.getUserById(id);
        return user != null ? ResponseEntity.ok(user) : ResponseEntity.notFound().build();
    }

    @PostMapping
    public ResponseEntity<String> createUser(@RequestBody User user) {
        userDAO.saveUser(user);
        return ResponseEntity.ok("User created successfully");
    }

    @PutMapping("/{id}")
    public ResponseEntity<String> updateUser(@PathVariable Long id, @RequestBody User userDetails) {
        userDAO.updateUser(id, userDetails);
        return ResponseEntity.ok("User updated successfully");
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<String> deleteUser(@PathVariable Long id) {
        userDAO.deleteUser(id);
        return ResponseEntity.ok("User deleted successfully");
    }
}

error:

Hibernate: select max(id) from users
.hibernate.PropertyAccessException: Could not set value of type [java.lang.Long]: 'com.example.demo.model.User.id' (setter)
        at .hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:88)
        at .hibernate.metamodel.mapping.internal.BasicEntityIdentifierMappingImpl.setIdentifier(BasicEntityIdentifierMappingImpl.java:163)
        at .hibernate.persister.entity.AbstractEntityPersister.setIdentifier(AbstractEntityPersister.java:4497)
        at .hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:128)
        at .hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:182)
        at .hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
        at .hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:81)
        at .hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
        at .hibernate.internal.SessionImpl.fireSave(SessionImpl.java:668)
        at .hibernate.internal.SessionImpl.save(SessionImpl.java:660)
        at .hibernate.internal.SessionImpl.save(SessionImpl.java:655)
        at com.example.demo.dao.UserDAO.saveUser(UserDAO.java:29)
        at com.example.demo.controller.UserController.createUser(UserController.java:29)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at .springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254)
        at .springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182)
        at .springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
        at .springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
        at .springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
        at .springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at .springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
        at .springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
        at .springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
        at .springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
        at .springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
        at .springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
        at .springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at .springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
        at .apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at .apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
        at .apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
        at .apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at .apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
        at .apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
        at .apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at .apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
        at .apache.tomcat.util.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
        at .apache.tomcat.util.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at .apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at .apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at .apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:1575)
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Long field com.example.demo.model.User.id to com.example.demo.model.User
        at java.base/jdk.internal.reflect.FieldAccessorImpl.throwSetIllegalArgumentException(FieldAccessorImpl.java:228)
        at java.base/jdk.internal.reflect.FieldAccessorImpl.throwSetIllegalArgumentException(FieldAccessorImpl.java:232)
        at java.base/jdk.internal.reflect.MethodHandleFieldAccessorImpl.ensureObj(MethodHandleFieldAccessorImpl.java:63)
        at java.base/jdk.internal.reflect.MethodHandleObjectFieldAccessorImpl.set(MethodHandleObjectFieldAccessorImpl.java:101)
        at java.base/java.lang.reflect.Field.set(Field.java:836)
        at .hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:57)

I'm learning java Hibernate, when i save the user through api, there is an error, anyone can figure out what is the problem?

hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourcefe/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <!-- Database Connection Settings -->
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/spring_hibernate</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">Abcd1234</property>

        <!-- Hibernate Settings -->
        <property name="hibernate.dialect">.hibernate.dialect.MySQL8Dialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- Mapped Entity -->
        <mapping class="com.example.demo.model.User"/>
    </session-factory>
</hibernate-configuration>

HibernateUtil.java

package com.example.demo.config;

import com.example.demo.model.User;
import .hibernate.SessionFactory;
import .hibernate.cfg.Configuration;

public class HibernateUtil {

    private static final SessionFactory sessionFactory;

    static {
        try {
            sessionFactory = new Configuration()
                    .configure("hibernate.cfg.xml")
                    .addAnnotatedClass(User.class)
                    .buildSessionFactory();
        } catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

User.java

package com.example.demo.model;

import .hibernate.annotations.GenericGenerator;

import jakarta.persistence.*;

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

    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name = "increment", strategy = "increment")
    private Long id;

    private String name;
    private String email;

    // Constructors
    public User() {}

    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

UserDao.java

package com.example.demo.dao;

import com.example.demo.config.HibernateUtil;
import com.example.demo.model.User;
import .hibernate.Session;
import .hibernate.Transaction;
import java.util.List;

public class UserDAO {

    public List<User> getAllUsers() {
        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
            return session.createQuery("FROM User", User.class).list();
        }
    }

    public User getUserById(Long id) {
        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
            return session.get(User.class, id);
        }
    }

    public void saveUser(User user) {
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            session.save(user);
            transactionmit();
        } catch (Exception e) {
            if (transaction != null && transaction.isActive()) {
                transaction.rollback();
            }
            e.printStackTrace();
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }

    public void updateUser(Long id, User userDetails) {
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            User user = session.get(User.class, id);
            if (user != null) {
                user.setName(userDetails.getName());
                user.setEmail(userDetails.getEmail());
                session.update(user);
                transactionmit();
            }
        } catch (Exception e) {
            if (transaction != null && transaction.isActive()) {
                transaction.rollback();
            }
            e.printStackTrace();
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }

    public void deleteUser(Long id) {
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            User user = session.get(User.class, id);
            if (user != null) {
                session.delete(user);
                transactionmit();
            }
        } catch (Exception e) {
            if (transaction != null && transaction.isActive()) {
                transaction.rollback();
            }
            e.printStackTrace();
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }
}

UserController.java

package com.example.demo.controller;

import com.example.demo.dao.UserDAO;
import com.example.demo.model.User;
import .springframework.http.ResponseEntity;
import .springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/users")
public class UserController {

    private final UserDAO userDAO = new UserDAO();

    @GetMapping
    public List<User> getAllUsers() {
        return userDAO.getAllUsers();
    }

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        User user = userDAO.getUserById(id);
        return user != null ? ResponseEntity.ok(user) : ResponseEntity.notFound().build();
    }

    @PostMapping
    public ResponseEntity<String> createUser(@RequestBody User user) {
        userDAO.saveUser(user);
        return ResponseEntity.ok("User created successfully");
    }

    @PutMapping("/{id}")
    public ResponseEntity<String> updateUser(@PathVariable Long id, @RequestBody User userDetails) {
        userDAO.updateUser(id, userDetails);
        return ResponseEntity.ok("User updated successfully");
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<String> deleteUser(@PathVariable Long id) {
        userDAO.deleteUser(id);
        return ResponseEntity.ok("User deleted successfully");
    }
}

error:

Hibernate: select max(id) from users
.hibernate.PropertyAccessException: Could not set value of type [java.lang.Long]: 'com.example.demo.model.User.id' (setter)
        at .hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:88)
        at .hibernate.metamodel.mapping.internal.BasicEntityIdentifierMappingImpl.setIdentifier(BasicEntityIdentifierMappingImpl.java:163)
        at .hibernate.persister.entity.AbstractEntityPersister.setIdentifier(AbstractEntityPersister.java:4497)
        at .hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:128)
        at .hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:182)
        at .hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
        at .hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:81)
        at .hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
        at .hibernate.internal.SessionImpl.fireSave(SessionImpl.java:668)
        at .hibernate.internal.SessionImpl.save(SessionImpl.java:660)
        at .hibernate.internal.SessionImpl.save(SessionImpl.java:655)
        at com.example.demo.dao.UserDAO.saveUser(UserDAO.java:29)
        at com.example.demo.controller.UserController.createUser(UserController.java:29)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at .springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254)
        at .springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182)
        at .springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
        at .springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
        at .springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
        at .springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at .springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
        at .springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
        at .springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
        at .springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
        at .springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
        at .springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
        at .springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at .springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
        at .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
        at .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
        at .apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
        at .apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at .apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
        at .apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
        at .apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at .apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
        at .apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
        at .apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at .apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
        at .apache.tomcat.util.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
        at .apache.tomcat.util.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at .apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at .apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at .apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:1575)
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Long field com.example.demo.model.User.id to com.example.demo.model.User
        at java.base/jdk.internal.reflect.FieldAccessorImpl.throwSetIllegalArgumentException(FieldAccessorImpl.java:228)
        at java.base/jdk.internal.reflect.FieldAccessorImpl.throwSetIllegalArgumentException(FieldAccessorImpl.java:232)
        at java.base/jdk.internal.reflect.MethodHandleFieldAccessorImpl.ensureObj(MethodHandleFieldAccessorImpl.java:63)
        at java.base/jdk.internal.reflect.MethodHandleObjectFieldAccessorImpl.set(MethodHandleObjectFieldAccessorImpl.java:101)
        at java.base/java.lang.reflect.Field.set(Field.java:836)
        at .hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:57)
Share Improve this question edited Mar 11 at 9:19 hkguile asked Mar 11 at 9:00 hkguilehkguile 4,36719 gold badges74 silver badges144 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

Please annotate the User's id as follows,

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

or

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;

Pleaser refer the documentation for more info, Enum GenerationType

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论