博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 中两个类关联不了_java – JPA-在非实体类中连接两个表
阅读量:4318 次
发布时间:2019-06-06

本文共 1079 字,大约阅读时间需要 3 分钟。

@SqlResultSetMapping可以放在任何实体类中(不要注释POJO – 它不起作用).在JPA 2.1版中添加了使用@ConstructorResult映射到POJO类.与映射一起使用的POJO必须具有正确的构造函数.

All columns corresponding to arguments of the intended constructor must be specified using the columns element of the ConstructorResult annotation in the same order as that of the argument list of the constructor.

请参考以下示例查询用法并相应地计算您的案例.

@Entity

public class Address {

@Id int id;

String street;

}

@SqlResultSetMapping(name="PersonDTOMapping",

classes = {

@ConstructorResult(targetClass = PersonDTO.class,

columns = {@ColumnResult(name="name"), @ColumnResult(name="street")}

)}

)

@Entity

public class Person {

@Id int id;

String name;

Address address;

}

public class PersonDTO {

String name;

String street;

public PersonDTO(String name, String street) {

this.name = name;

this.street = street;

}

}

// usage

Query query = em.createNativeQuery(

"SELECT p.name AS name, a.street AS street FROM Person p, Address a WHERE p.address_id=a.id",

"PersonDTOMapping");

List result = query.getResultList();

请注意,别名(AS名称和AS街道)必须与@ColumnResults中的名称匹配.

该示例针对Ecliselink 2.5.1进行了测试.

转载地址:http://swgzs.baihongyu.com/

你可能感兴趣的文章
树状数组
查看>>
java 中的同步机制
查看>>
I学霸官方免费教程八:Java基础之方法(函数)
查看>>
最直观的poi的使用帮助(告诉你怎么使用poi的官网),操作word,excel,ppt
查看>>
php中的页面跳转和重定向
查看>>
机器学习----分布问题(二元,多元变量分布,Beta,Dir)
查看>>
UVA 10462 Is There A Second Way Left?(次小生成树&Prim&Kruskal)题解
查看>>
SCU 4438 Censor(Hash)题解
查看>>
HDU 1392 Surround the Trees(凸包)题解
查看>>
HDU 3949 XOR (线性基第k小)题解
查看>>
SQL Server经典函数之数字去零
查看>>
一周小记(十八)
查看>>
批量插入数据@Insert
查看>>
push和commit的区别
查看>>
设计模式学习9 Decorator
查看>>
加入博客园
查看>>
linux 管道符号 | ,以及&& ||等等特殊符号笔记
查看>>
ORACLE 中rownum和row_number()的使用区别(可指定取sql结果集的第几个数据)
查看>>
eclipse 迁移项目 乱码
查看>>
[js高手之路] es6系列教程 - 对象功能扩展详解
查看>>