簡體   English   中英

我不知道為什么我非常簡單的 JPA 項目不起作用

[英]I don't know why my very simple JPA project doesn't work

我有 org.postgresql.util.PSQLException:錯誤:關系“角色”不存在,我不知道為什么。

實體 class

package com.example.SpringBootTest1.model;

import lombok.*;
import javax.persistence.*;

@ToString
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "roles")
public class Role
{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Setter
    @Getter
    private int id;
    
    @Setter
    @Getter
    @Column(name = "name")
    private String name;
}

main()

public static void main(String[] args)
{
        
    EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("role_pu");
    EntityManager entityManager = entityManagerFactory.createEntityManager();
    EntityTransaction entityTransaction = entityManager.getTransaction();

    entityTransaction.begin();
        
    Role role1 = new Role();
    role1.setName("role111");
    entityManager.persist(role1);
    entityManager.getTransaction().commit();
    entityManagerFactory.close();
    entityManager.close();
}

資源/META-INF/persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="role_pu" transaction-type="RESOURCE_LOCAL">

        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

        <class>com.example.SpringBootTest1.model.Role</class>

        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/postgres"/>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
            <property name="javax.persistence.jdbc.user" value="postgres"/>
            <property name="javax.persistence.jdbc.password" value="123"/>

            <property name="dialect" value="org.hibernate.dialect.PostgreSQL94Dialect"/>
            <property name="show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hdm2ddl.auto" value="create"/>
        </properties>

    </persistence-unit>
</persistence>

pom.xml我有
hibernate-core
postgresql
lombok
那么為什么我有這樣的錯誤,為什么會這樣呢? 我已閱讀此問題,但對我沒有幫助。

在現代 Hibernate 版本中,屬性hdm2ddl.auto應該是hibernate.hbm2ddl.autojavax.persistence.schema-generation.database.action

https://docs.jboss.org/hibernate/stable/orm/userguide/html_single/Hibernate_User_Guide.html#configurations-hbmddl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM