Java 嵌套异常为org.hibernate.exception.genericjdbception:无法执行语句
我在一个小项目中使用了maven、Hibernate、spring和JPA存储库。我兴高采烈地认为这里的信息 将足以创建至少一个简单的应用程序。不幸的是,情况并非如此。我已经设法从MySQL数据库中读取数据,但到目前为止,我还无法插入任何数据 下面是一个简单的“用户”模型类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
@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;
}
}