首页 > 解决方案 > 我在春天看不到我的网页[春天]

问题描述

我是使用这个框架的新手,我正在尝试使用休眠连接部署一个 Web,我创建了一个 .xml 配置文件来连接到 PostgreSQL。

但日志显示此错误:

2020-11-14T22:32:28.610246+00:00 heroku[router]: at=info method=GET path="/" 
host=gstlabs.herokuapp.com request_id=978ecfdc-917f-41a0-8867-8cc55b73def1 fwd="190.84.149.124" dyno=web.1 connect=2ms service=211ms status=500 bytes=610 protocol=https
2020-11-14T23:04:34.213061+00:00 heroku[web.1]: Idling
2020-11-14T23:04:34.215664+00:00 heroku[web.1]: State changed from up to down
2020-11-14T23:04:35.167671+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2020-11-14T23:04:35.279279+00:00 app[web.1]: 2020-11-14 23:04:35.278  INFO 4 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2020-11-14T23:04:35.279712+00:00 app[web.1]: 2020-11-14 23:04:35.279  WARN 4 --- [extShutdownHook] o.s.b.f.support.DisposableBeanAdapter    : Invocation of destroy method failed on bean with name 'entityManagerFactory': org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.example.core.models.Projects.technologies in com.example.core.models.Technologies.projects
2020-11-14T23:04:35.280073+00:00 app[web.1]: 2020-11-14 23:04:35.279  INFO 4 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
2020-11-14T23:04:35.282600+00:00 app[web.1]: 2020-11-14 23:04:35.282  INFO 4 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2020-11-14T23:04:35.325392+00:00 app[web.1]: 2020-11-14 23:04:35.325  INFO 4 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.
2020-11-14T23:04:35.426750+00:00 heroku[web.1]: Process exited with status 143

有我的课程:[技术]

package com.example.core.models;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

@Entity
@Table(name="technologies")
public class Technologies {
    @Id
    @Column(name="id")
    private int id;
    @Column(name="name")
    private String name;
    
    public Technologies() {
    }

    public Technologies(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Technologies [id=" + id + ", name=" + name + "]";
    }
    
    @ManyToMany(mappedBy="technologies")
    private Set<Projects> projects = new HashSet<>();

    public Set<Projects> getProjects() {
        return projects;
    }

    public void setProjects(Set<Projects> projects) {
        this.projects = projects;
    }   
}

[项目]

package com.example.core.models;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

@Entity
@Table(name="projects")
public class Projects {
    @Id
    @Column(name="id")
    private int id;
    @Column(name="photo")
    private String photo;
    @Column(name="link")
    private String link;    
    
    public Projects() {
    }

    public Projects(String photo, String link) {
        this.photo = photo;
        this.link = link;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getPhoto() {
        return photo;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    @Override
    public String toString() {
        return "Projects [id=" + id + ", photo=" + photo + ", link=" + link + "]";
    }
    
    @ManyToMany(cascade= {CascadeType.ALL})
    @JoinTable(
        name="projects_has_technologies",
        joinColumns=@JoinColumn(name="project_id"),
        inverseJoinColumns=@JoinColumn(name="technology_id")        
    )
    Set<Technologies> tecnologies = new HashSet<>();
    
    @ManyToMany(mappedBy="projects")
    private Set<Profiles> profiles = new HashSet<>();

    public Set<Technologies> getTecnologies() {
        return tecnologies;
    }

    public void setTecnologies(Set<Technologies> tecnologies) {
        this.tecnologies = tecnologies;
    }

    public Set<Profiles> getProfiles() {
        return profiles;
    }

    public void setProfiles(Set<Profiles> profiles) {
        this.profiles = profiles;
    }
}

在这个项目中我的类中有一些代码,其他中间类是相似的,我正在尝试在数据库中插入一些对象。提前感谢您的帮助。

我的数据库

标签: springhibernateheroku

解决方案


例如,您是否尝试在项目中添加配置类

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories( basePackages = "your repository package" )
@EntityScan( basePackages = {"your entity package1","your entity package2"}
public class TransactionConfiguration {}

这将帮助您在项目中找到您的实体类。


推荐阅读