【问题标题】:Spring boot/JPA connection to MariaDB cant create the entities与 MariaDB 的 Spring Boot/JPA 连接无法创建实体
【发布时间】:2019-05-05 16:14:59
【问题描述】:

您好,我刚从 spring 和 JPA 开始。我想要开始的只是连接到远程数据库并创建我在我的 spring 应用程序上拥有的实体。

我在 VPS 中有一个 Maria DB 服务器 5.7.24。

我在 /JpaTest/src/main/java/domain 创建了一个名为 domain 的包。在里面我有一个对象 - 像这样的实体。

package domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity @Table(name="users")
public class User 
{
    @Id    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String username;
    private String password;
    private String name;    


    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

而我的application.properties是这样的……

spring.datasource.url=jdbc:mysql://URL:Port/dbName
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=admin_customer
spring.datasource.password=*********



spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql = true
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

像这样,程序作为 Spring Boot 应用程序运行。但它没有创建表。我曾尝试使用 spring.jpa.hibernate.ddl-auto=update 将方言更改为其他版本,甚至使用 org.hibernate.dialect.MariaDBDialectorg.mariadb.jdbc.Driver 等等。

但它无法正常工作。当我使用 MySQL 以外的任何方言或驱动程序时,程序无法运行,因为它找不到它们。当我使用上面的设置时,它会执行但它什么也不做。

【问题讨论】:

    标签: spring-boot jpa mariadb entity dialect


    【解决方案1】:

    您应该在列之前添加@Column(name = "name") 并检查您的应用程序配置类有:@EntityScan("some.known.persistence")

    【讨论】:

    • @EntityScan( basePackages = {"domain"} ) 成功了,谢谢!我注意到 @Column(name = "name") 是不必要的(JPA 只是用相同的名称创建了它)。反正。再次感谢您!
    猜你喜欢
    • 2018-05-11
    • 2017-04-04
    • 2021-11-19
    • 2020-07-04
    • 2018-10-22
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多