hibernate不获取非所有者实体

dldeef67  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(327)

我有两张table category 以及 financial_year . 每 category 外键指向 financial_year .
在springmvc/jpa/hibernate中,我有相应的实体类和存储库接口(扩展) CrudRepository ). 当我 findAllCategoryRepository 一切正常。这个 FinancialYear 每个实体 Category 我可以通过jsp显示相同的内容。
当我试着 findAllFinancialYearRepository 不仅是各自的 Category 未获取的实体,甚至 FinancialYear 不获取列。jsp只显示表中的一个空行。以下是实体类


**Category.java**

package com.ssg...model;

import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Version;

@Entity
@Table(name = "category")
public class Category implements java.io.Serializable {

    @Id
    @GeneratedValue
    private int id;
    @ManyToOne
    @JoinColumn(name = "financial_year_id")
    private FinancialYear financialYear;
    private String name;
    private String description;

...
...

**FinancialYear.java**

package com.ssg...model;

import java.util.Date;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Version;

@Entity
@Table(name = "financial_year")
public class FinancialYear implements java.io.Serializable {

    @Id
    @GeneratedValue
    private int id;
    @Column(name = "financial_year_start")
    private Date financialYearStart;
    @Column(name = "financial_year_end")
    private Date financialYearEnd;
    private String comments;

    @OneToMany(mappedBy = "financialYear")
    private Set<Category> categories = new HashSet<Category>();

...
...

**JPAConfig.java**

package com.ssg...config;

import java.util.Properties;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.LocalEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableJpaRepositories(basePackages = { "com.ssg...repository" })
@EnableTransactionManagement
public class JpaConfig {

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
        factoryBean.setPersistenceUnitName("pbaPersistenceUnit");
        factoryBean.setPackagesToScan(new String[] { "com.ssg...model" });
        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        factoryBean.setJpaVendorAdapter(vendorAdapter);
        factoryBean.setJpaProperties(additionalProperties());
        factoryBean.setDataSource(dataSource());

        return factoryBean;
    }

...
...

当我检查呈现的jsp的源代码时( financialYears.jsp )我看到了以下内容。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Shri Ganeshaaya Namaha !!!</title>
</head>
<body>
    <table border="1" cellpadding="5">
        <thead>
            <td>FY Start</td>
            <td>FY End</td>
            <td>FY Comments</td>
        </thead>
        <c:forEach items="[com.ssg...model.FinancialYear@41e4e4a5, com.ssg...model.FinancialYear@66363545]" var="fy">

            <tr>
                <td></td>
                <td></td>
                <td></td>

            </tr>

        </c:forEach>
    </table>
</body>
</html>
xtfmy6hx

xtfmy6hx1#

我看到有人否决了我的问题,这是正确的。这个人说没有足够的研究投入,我同意。该人士还表示,这个问题并不清楚。不过,让我说,我是一个新的堆栈溢出。一些关于我需要进一步调查的方向的指示,以及我需要在问题中添加什么以使问题更清楚的指示,可能会有所帮助。上面提到的一个简短的评论会让像我这样的新手无所事事,无处寻求帮助。所以,虽然我知道每个人都非常忙,但我会要求任何回复者(对任何人未来的任何问题)更加体贴,特别是对新来的人,以便我们可以利用这个美妙的网站。
话虽如此,虽然这条评论让我有点失望,但它还是促使我在这个问题上多花点时间,尽管我的工作日程很紧,编程不是我的主要工作,我可以解决这个问题。问题很简单,我没有在jsp中包含jstl taglib。快速查看我的代码会把它透露给所有的Maven,如果你能把它指给我的话,我会很体贴的。
我接受我的错误并为此道歉。我也会要求所有人谁是如此有帮助,在这个网站上也表现出一些考虑到新手喜欢。
我的问题已经解决了。

相关问题