com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表不存在
Posted
技术标签:
【中文标题】com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表不存在【英文标题】:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table doesn't exist 【发布时间】:2016-04-16 04:15:15 【问题描述】:当我在http://localhost:8080/api/projects 访问它时,我猜它连接到我的 mysql 数据库,其中我有一个表 PROJECTS(ID, TITLE),但显示以下错误
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'bugtrackerdb.projects' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_40]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_40]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_40]
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[na:1.8.0_40]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404) ~[mysql-connector-java-5.1.38.jar:5.1.38]
at com.mysql.jdbc.Util.getInstance(Util.java:387) ~[mysql-connector-java-5.1.38.jar:5.1.38]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:939) ~[mysql-connector-java-5.1.38.jar:5.1.38]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878) ~[mysql-connector-java-5.1.38.jar:5.1.38]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) ~[mysql-connector-java-5.1.38.jar:5.1.38]
实体
@Entity
@Table(name = "PROJECTS")
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class Project implements Serializable
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "TITLE")
private String title;
@OneToMany(mappedBy = "project", fetch = FetchType.LAZY)
private Set<Module> modules;
@OneToMany(mappedBy = "project", fetch = FetchType.LAZY)
private Set<Bug> bugs;
资源
@Component
@Path("/projects")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class ProjectsResource
@Autowired
ProjectService projectService;
@GET
public List<Project> getProjects()
return projectService.getAllProjects();
@POST
public Project createProject(Project project)
return projectService.createProject(project);
存储库
public interface ProjectRepository extends JpaRepository<Project, Long>
休眠属性
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
hibernate.format_sql=true
hibernate.show_sql=true
entitymanager.packages.to.scan=intuitio.kickstart.jersey.domain
hibernate.auto=create
连接属性
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1:3306/bugtrackerdb
db.username=root
db.password=pass
【问题讨论】:
在数据库“bugtrackerdb”上运行“显示表”并在此处发布 @premkumar 'BUGS' 'COMMENTS' 'MODULES' 'PROJECTS' 'USERS' 你能发布数据源连接属性吗?连接属性 @premkumar 将其添加到帖子底部 【参考方案1】:您应该使用hibernate.hbm2ddl.auto
而不是hibernate.auto
创建数据库。
【讨论】:
感谢您的回答。事实上,我有一个 ApplicationConfig 类,我在其中设置了从 *.properties 文件中提取的 dataSource 和 hibernate 属性,但我没有在该类中正确编写“hibernate.hbm2ddl.auto”。 @NicolaeFocsa 欢迎您。您可以参考HibernateSessionFactory.Builder 作为配置实用程序类的示例。 @v.ladynev 我正在使用 hibernate.hbm2ddl.auto 并且仍然遇到同样的错误! :3 @FuSsA 请提出您自己的问题并提供您的配置。 @v.ladynev link以上是关于com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表不存在的主要内容,如果未能解决你的问题,请参考以下文章
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:重复条目 '' 键 'PRIMARY'
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障?
错误 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表不存在
使用 JDBC 访问远程 MySQL 数据库时出现 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障