在我的春季应用程序中,我有以下实体:
import lombok.Data;
@Data
@Entity
public class Profile {
@Id
@GeneratedValue
Long id;
String name;
String address;
String description;
String img;
public Profile(String name, String address, String description, String img) {
this.name = name;
this.address = address;
this.description = description;
this.img = img;
}
}
然后存储库是:
@Repository
public interface ProfileRepository extends JpaRepository<Profile,Long> {
}
这是我的pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
所以,我希望当我去h2控制台时使用uri:
http://localhost:8080/h2-console/login.do?jsessionid=ae6ba7021a23e0ebb4a4844381546e72
它显示与对象Profile
相关的表。
问题是:没有名为Profile的表。
那么,为什么我没有个人资料表?
application.properties
为空
当我运行我的应用程序时,它说:
[2m2017-06-29 10:07:21.106[0;39m [32m INFO[0;39m [35m51392[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36morg.hibernate.dialect.Dialect [0;39m [2m:[0;39m HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
[2m2017-06-29 10:07:21.557[0;39m [32m INFO[0;39m [35m51392[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36morg.hibernate.tool.hbm2ddl.SchemaExport [0;39m [2m:[0;39m HHH000227: Running hbm2ddl schema export
[2m2017-06-29 10:07:21.557[0;39m [32m INFO[0;39m [35m51392[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36morg.hibernate.tool.hbm2ddl.SchemaExport [0;39m [2m:[0;39m HHH000230: Schema export complete
所以,似乎应用程序使数据库的模式。我是对的吗?
答案 0 :(得分:0)
您也可以通过编写schema.sql文件来创建表,并通过将文件放在src / main / resources位置来加载数据。有很多不同的方法可以做到这一点。我喜欢schema.sql文件,因为它有一些你可以查看和管理的东西。
答案 1 :(得分:0)
然后你打开&#39; http://localhost:8080/h2-console&#39;你需要指定&#39; JDBC URL&#39;。默认情况下(据我所知您使用默认设置,因为您的application.properties为空),此值为:
jdbc:h2:mem:testdb
恕我直言H2控制台不是开发人员的最佳选择。您可以直接在IDE中使用H2 - 请参阅my answer。
答案 2 :(得分:0)
您需要在application.properties
中设置h2配置
写下这些行
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb --> whatever url you find when open console
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=create
答案 3 :(得分:-1)
检查包含注释@SpringBootConfiguration的主类是否在包的层次结构的根目录中