【发布时间】:2020-01-24 23:16:41
【问题描述】:
我有一个名为 company 的 POJO,它映射到名为 company 的数据库表 我有一个只有两个字段的本机查询(由于遗留原因,公司有很多我想删除的急切映射)
系统正在使用弹簧数据 我想映射为本机查询,并且只将这两个标量填充到我的公司列表中 我如何使用 CompanyRepository 来做到这一点?
@Entity
@Audited
@Table(name = "company")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@NamedNativeQuery(
name = "getDefaultBuyers",
query =
"SELECT c.id as id ,c.name as name"
+ "FROM complex query with non mapped tables "
resultSetMapping = "getDefaultBuyersMapping")
@SqlResultSetMapping(
name = "getDefaultBuyers",
columns = {@ColumnResult(name = "name"),@ColumnResult(name = "id")})
public class Company {
@Column(name = "id", nullable = false, length = 32)
protected String id;
@Column(name = "name", nullable = false)
protected String name;
//diffrent properties
}
@Repository
public interface CompanyRepository
extends JpaRepository<Company, Long>, JpaSpecificationExecutor<Company>{}
编辑 我不认为它很优雅,但是这个有效,有人可以帮我做得更优雅
@Repository
public interface CompanyRepository
extends JpaRepository<Company, Long>, JpaSpecificationExecutor<Company>{
@Query(
value =
"SELECT c.id as id ,c.name as name FROM bidder_config b, native_version n, company c WHERE ...",
nativeQuery = true)
Object[][] getDefaultBuyers(); ```
【问题讨论】:
标签: java spring-data-jpa