【发布时间】:2020-06-02 17:00:22
【问题描述】:
在查询我的@Entity 类时,是否有任何可能的方法来映射别名列的值?例如,对于这种情况,有新列:名字和姓氏在事务表中不存在。有没有办法将值映射到 Transaction @Entity 类?
示例实体和道
@实体
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="Transaction")
public class Transaction {
@Id
@Column(name="customer_id")
private String customerId;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
@TransactionDAO
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface TransactionDao extends PagingAndSortingRepository<Transaction, Long>, QuerydslPredicateExecutor<Transaction>{
@Query(value = "SELECT customer_id, SUBSTR (customer_name, 1, 10) as first_name, SUBSTR (customer_name, 11, 20) as last_name FROM Transaction WHERE customer_id=:#{#customerId}", nativeQuery = true)
public List<Transaction> selectByTransaction(@Param("customerId") String customerId);
}
如果我对 first_name 和 last_name 使用 @Column 注释,则会出现错误,因为 Transaction Table 中不存在该列中的两个
【问题讨论】:
标签: spring spring-boot jpa spring-data-jpa dao