从@Query注释中获取两列,其中包含nativeQuery true J​​PARepository

时间:2018-06-15 06:25:09

标签: java hibernate jpa spring-data-jpa

我有一个实体用户

@Entity
@Table(name="user")
public class User{

@Id
@Column(name="id")
private int id;
@Column(name="reward")
private double reward;

@Column(name="reward_id")
private double rewardId;

//Getter & Setters
}

现在我需要的是立刻从DB中的其他表中获取@Query注释的奖励和奖励。

我尝试过使用

@Query(value="SELECT reward,reward_id from Table_name")
 public List getRewards();

但是在运行时它没有说明与bean相关的属性。当我只选择单列时,它会在我的查询中提供完美的运行

请帮助我,因为我是JPA和Hibernate的新手 在此先感谢!!

1 个答案:

答案 0 :(得分:1)

只需使用Projection

public interface RewardProjection {
    Double getReward();
    Double getRewardId();
}

@Query(value = "select t.reward as reward, t.reward_id as rewardId from table_name t", nativeQuery = true)
public List<RewardProjection> getRewards();