首页 > 解决方案 > 创建一个新的 JPA 实体以从两个表中生成一个新对象

问题描述

你好编程委员会,这是我第一次在愤怒中使用 JPA。

我有 2 张桌子:

    Entity
@Table(name="category")
public class Category {
    
    @Id
    @Column(name="id")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;
    
    @Column(name="category")
    private String category;
    
    @Column(name="budget")
    private double budget;
    
    @Column(name="savings")
    private String savings;
    
    @Column(name="archive")
    private String archive;


    Entity
@Table(name="Transaction")
public class Transaction {
    
    @Id
    @Column(name="transaction_no")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long transactionNo;
    
    @Column(name="transaction_date")
    private String transactionDate;
    
    @Column(name="transaction_category")
    private String transactionCategory;
    
    @Column(name="transaction_description")
    private String transactionDescription;
    
    @Column(name="transaction_amount")
    private double transcationAmount;
    
    @Column(name="transaction_auto")
    private String transactionAuto;

我想创建一个名为 Tile 的新对象,它将包含字符串类别和字符串余额,其 SQL 将是:

select t.transaction_category as category, sum(t.transaction_amount) as balance
from budgeteer.category c 
join budgeteer.transaction t
on c.category = t.transaction_category
group by t.transaction_category;

对我来说最简单/最好的方法是什么?提前致谢。

标签: javamysqlsqljpaspring-data-jpa

解决方案


好的,所以经过更多研究后,我发现我实际上可以使用相同的实体、存储库和服务来执行此操作,而无需生成表。您只需要在创建实体时省略 @Table 注释。


推荐阅读