【发布时间】:2016-06-09 08:46:39
【问题描述】:
我想创建一个由 SQL 映射的实体ReportEntry。这里有两张表 - user 和 group。
mysql> desc user;
+------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| firstName | varchar(255) | YES | | NULL | |
| lastName | varchar(255) | YES | | NULL | |
| active | bit(1) | NO | | NULL | |
| language | varchar(20) | NO | | NULL | |
| activationDate | datetime | YES | | NULL | |
| group_id | int(11) | YES | MUL | NULL | |
| |
| ...More columns... |
| |
+------------------------+--------------+------+-----+---------+----------------+
mysql> desc group;
+----------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| displayName | varchar(255) | YES | MUL | NULL | |
| description | varchar(255) | YES | | NULL | |
+----------------------------+--------------+------+-----+---------+----------------+
我正在使用以下 SQL 查询在 group_id 上加入这些表。
SELECT u.* FROM user u JOIN group g ON u.group_id = g.id
对于上面的查询,我想创建一个Entity并使用上面的SQL查询作为它的映射。我怎样才能做到这一点?
我不仅想要映射,还想要使用实体来查询记录。例如,假设我能够使用实体 RecordEntry 创建映射,我应该能够以 FROM RecordEntry WHERE id = :id" and I will passid```` 作为参数获取特定记录。这样,最终的查询应该以原生形式执行,就像(对于 id=1)。
SELECT u.* FROM user u JOIN group g ON u.group_id = g.id AND id = 1
【问题讨论】:
-
您能否提供一个查询结果的示例?
-
@nezdolik,我已经更新了我的问题以提供更多详细信息,因为我需要一个可以在 JPA 中查询的实体。
标签: java hibernate jpa ejb jpa-2.0