Объединение нескольких таблиц в Spring Data JPA - PullRequest
0 голосов
/ 25 октября 2018

Я новичок в Spring Data JPA и столкнулся с проблемой соединения двух таблиц.

У меня есть две таблицы: Product и Type.

Product имеет поля как product_no, name, cost, type_id.

Type имеет поля id и name.Я могу получить данные из таблицы Product, но не могу отобразить имя Type вместе с информацией о продукте.Таблицы с данными следующие:

Table : product

id      product_no  name                     type_id
1       kts2018        Kites tracker         1
2       jt2018           Jira  tracker           1
3       st2018          Strike seeker         2

Table:  type

id       name
1        Tracker
2        Seeker

Существуют следующие объекты:

Продукт

@Entity
@Table(name = "product")
public class Product implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "product_no")
    private String product_no;
    @Column(name = "name")
    private String name;
    @ManyToOne
    @JoinColumn(name = "type_id")
    private Type type;


    public String getProduct_no() {
        return product_no;
    }

    public void setProduct_no(String product_no) {
        this.product_no = product_no;
    }

    public Level getType() {
        return type;
    }

    public void setType(Type type) {
        this.type = type;
    }

Тип

@Entity
@Table(name = "type")
public class Type implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "name")
private String name;

public String getName() {
    return name;
}

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

public int getId() {
    return id;
}

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

IЯ использую приведенный ниже код для извлечения данных из таблицы продуктов: -

public interface ProductRepository extends JpaRepository<Product, Long> {

    @Query("select product, product.type.name FROM Product product where product.type.id=1")
    List<Product> getAllUserProducts();
}

Контроллер выглядит следующим образом: -

@GetMapping("secure/product-details")
    public ModelAndView getAllUserProducts() {
        ModelAndView mav = new ModelAndView();
        mav.addObject("userProducts", userInfoService.getAllUserProducts());
        mav.setViewName("products");
    return mav;
}

products.html

<tr th:each="product: ${userProducts}">
                                    <td th:text="${product.product_no}"></td>                                                                           
                                    <td th:text="${product.type.name}"></td>

                                    <td><a class="btn-info btn-sm" style="border-radius: 4px"
                                        th:href="${'/show/' + product.product_no}">Process</a></td>
                                </tr>

Теперь я получаю ошибки Thymeleaf.

Это говорит

Exception evaluating SpringEL expression: "product.product_no"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...