Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 嵌套异常为org.hibernate.exception.genericjdbception:无法执行语句_Java_Database_Spring_Hibernate_Jpa - Fatal编程技术网

Java 嵌套异常为org.hibernate.exception.genericjdbception:无法执行语句

Java 嵌套异常为org.hibernate.exception.genericjdbception:无法执行语句,java,database,spring,hibernate,jpa,Java,Database,Spring,Hibernate,Jpa,我在一个小项目中使用了maven、Hibernate、spring和JPA存储库。我兴高采烈地认为这里的信息 将足以创建至少一个简单的应用程序。不幸的是,情况并非如此。我已经设法从MySQL数据库中读取数据,但到目前为止,我还无法插入任何数据 下面是一个简单的“用户”模型类 @Entity @Table(name = "ctuser") public class User implements Serializable { private static final long seri

我在一个小项目中使用了maven、Hibernate、spring和JPA存储库。我兴高采烈地认为这里的信息

将足以创建至少一个简单的应用程序。不幸的是,情况并非如此。我已经设法从MySQL数据库中读取数据,但到目前为止,我还无法插入任何数据

下面是一个简单的“用户”模型类

@Entity
@Table(name = "ctuser")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long uid;

    @Column(name = "Gmail", nullable = false)
    private String gmail;


    public String getGmail() {
        return gmail;
    }

    public void setGmail(String gmail) {
        this.gmail = gmail;
    }

    @Override
    public String toString() {
        return getGmail();
    }
}
我已经创建了一个合适的存储库接口

package put.io.come_together.service.persistance.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import put.io.come_together.model.User;

public interface UserRepository extends JpaRepository<User, Long> {

    User findUserByUid(long uid);

    User save (User obj);

    }

您说过Hibernate使用自动策略自动生成ID。使用MySQL时,此策略包括让数据库使用自动增量列生成ID。因此,如果您没有将uid定义为自动递增,那么这将不起作用。

发布异常的完整堆栈跟踪。并设置调试日志级别。如果您不介意uid自动递增,只需删除该策略,它就应该运行。有关战略的更多信息,请查看此处
public interface UserService {

    User getUser(long uid);

    User addUser(User obj);

    List<User> getAll();

}
@Service
public class UserServiceImpl implements UserService {
    private final UserRepository userRepository;

    @Autowired
    public UserServiceImpl(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Override
    public User getUser(long uid) {return userRepository.findUserByUid(uid);
    }

    @Transactional
    @Override
    public User addUser(User obj) {return this.userRepository.saveAndFlush(obj);}

    @Override
    public List<User> getAll() {
        return userRepository.findAll();
    }
@Controller
public class HomePageController {


    @Autowired
    private UserService userService;

    private static final String USER_MAP_KEY = "groups";
    private static final String USER_LIST_TEMPLATE_NAME = "groupList";

    @RequestMapping("/")
    String hello(Map<String, Object> model) {
        User osoba = new User();
        osoba.setGmail("ADAMWEST");
        userService.addUser(osoba);

        List<User> userGroupsList = userService.getAll();
        model.put(USER_MAP_KEY, userGroupsList);
        return USER_LIST_TEMPLATE_NAME;
    }

}