繁体   English   中英

org.postgresql.util.PSQLException:错误:关系“产品”不存在

[英]org.postgresql.util.PSQLException: ERROR: relation "products" does not exist

我正在处理以下代码:

产品

 @Entity
 @Table(name = "products",
 public class Product extends RepresentativeModel {
 @ManyToMany(mappedBy = "products", targetEntity = Category.class)
 private Set<Category> categories = new HashSet<>();
 }

类别

 @Entity
 @Table(name = "categories",
 public class Category extends RepresentativeModel {
 @ManyToMany
@JoinTable(name = "productToCategory",
        joinColumns = {@JoinColumn(name = "categoryId")},
        inverseJoinColumns = {@JoinColumn(name = "productId")})
private Set<Product> products = new HashSet<>();
 }

电磁配置

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("dataSource") DataSource source) {
    LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
    entityManagerFactory.setDataSource(source);
    entityManagerFactory.setPackagesToScan("com.x.model");
    JpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
    entityManagerFactory.setJpaVendorAdapter(jpaVendorAdapter);
    entityManagerFactory.setJpaProperties(jpaProperties());
    entityManagerFactory.setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
    log.debug("PERSISTENCE UNIT " + PERSISTENCE_UNIT_NAME);
    return entityManagerFactory;
}

包裹信息

两者的包都是com.x.model

Properties properties = new Properties(); 
properties.put("hibernate.default_schema", "public"); 
entityManagerFactory.setJpaProperties(properties); 

问题

产品表存在于数据库中,但我收到以下错误消息:

org.postgresql.util.PSQLException:错误:关系“产品”不存在

我试图将实体名称更改为“产品”或将mappedBy更改为“产品”,但没有成功。

如何解决这个问题?

我遇到了同样的问题,互联网上的所有答案都没有帮助我。 而且我发现 postrgres 以区分大小写的方式创建表,如果您在创建表时添加双引号。

"auteur" and auteur are two different names.

我不确切知道它是如何工作的,但显然 Hibernate 无法找到@JoinTable关系的@ManyToMany ,因为正如我在上面所写的,这是 postgres 的不同表。 知道这一点解决了我的问题。 也许这会帮助别人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM