Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >使用JPA时,@Entity和@Table中的name参数有什么不同?

使用JPA时,@Entity和@Table中的name参数有什么不同?
EN

Stack Overflow用户
提问于 2011-08-31 15:18:00
回答 3查看 27.3K关注 0票数 61

我使用的是JPA2,@Entity@Table都有一个name属性,例如:

代码语言:javascript
代码运行次数:0
复制
@Entity(name="Foo")
@Table (name="Bar")
class Baz

我应该使用什么,哪些是可选的?

在我的特定情况下,我有一个类User和一个类Group,它们有额外的要求(据我所知),因为它们是SQL中的保留字。

一个有效的解决方案应该是什么样子的,在编写查询时,我应该用哪个名称来引用实体?

更新:我将name="GROUPS"添加到Group中的两个注释中,并对User执行了相同的操作,但现在我收到以下错误:

代码语言:javascript
代码运行次数:0
复制
Exception Description: The table [USERS] is not present in this descriptor.
Descriptor: RelationalDescriptor(example.Group --> [DatabaseTable(GROUPS)])

这个错误

代码语言:javascript
代码运行次数:0
复制
Internal Exception: java.sql.SQLException: Table not found in statement [SELECT ID, MAXIMUMROLE, MEMBERSHIPS_ID FROM USERS]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-31 19:16:32

@Table是可选的。将POJO类注释为实体需要@ entity,但name属性不是必需的。

如果你有一个类

代码语言:javascript
代码运行次数:0
复制
 @Entity
 class MyEntity {}

将创建一个名为"MyEntity“的表,实体名称为MyEntity。您的JPQL查询将为:

代码语言:javascript
代码运行次数:0
复制
 select * from MyEntity

在JPQL中,您总是使用实体名称,默认情况下它是类名。

如果你有一个类

代码语言:javascript
代码运行次数:0
复制
 @Entity(name="MyEntityName")
 @Table(name="MyEntityTableName")
 class MyEntity {}

然后创建一个名为MyEntityTableName的表,实体名称为MyEntityName.

您的JPQL查询将为:

代码语言:javascript
代码运行次数:0
复制
 select * from MyEntityName
票数 89
EN

Stack Overflow用户

发布于 2011-08-31 15:20:26

@Entity中的 name 是用于JPA-QL查询的,它缺省为不带包的类名(或者Java术语中的非限定类名),如果您更改了它,则必须确保在构建查询时使用此名称。

@Table中的 name 是保存此实体的表名。

票数 29
EN

Stack Overflow用户

发布于 2016-10-15 05:12:16

@Entity对于模型类很有用,它表示这是实体或表

如果要提供任何不同的名称,则可以使用@Table为表提供任何特定的名称

注意:如果您不使用@Table,那么hibernate会认为@Entity是缺省的表名

代码语言:javascript
代码运行次数:0
复制
@Entity    
@Table(name = "emp")     
public class Employee implements java.io.Serializable { }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7259273

复制
相关文章
记录一下fail2ban不能正常工作的问题 & 闲扯安全
在加载配置这个事情上,许多linux应用程序只需要发一个信号,应用自己就完成配置重载,无需重启中断服务,但是依然有很多程序并不支持。
horsley
2022/08/16
3.6K0
计算机上的网卡工作情况
一般电脑都有一个网络接口,简称“网口” 或 “ 端口 ” 逻辑讲,网卡包含7个功能模块,分别是 CU 控制单元、OB 输出缓存、IB 输入缓存、LC 线路编码器、LD 线路解码器、TX 发射器、RX 接收器。
萌海无涯
2019/11/07
7190
计算机上的网卡工作情况
Linux下shell不能正常执行
看上面信息【with CRLF line terminators】,大概能定位到问题
小码匠
2022/06/16
4.3K0
CentOS7.0下,apache不能正常运行的解决思路
/usr/local/apache/bin/apachectl startapache
一朵灼灼华
2022/08/05
1.5K0
配置SSL证书后,Nginx的HTTPS 不能正常工作的原因有哪些
申请ssl证书,配置nginx支持https与证书,可是访问https的nginx总是出现错误,也导致小程序发https请求失败,这是什么原因呢?
网盾JoySSL小张
2023/08/31
4.8K0
正常的工作流程
修改文件,将它们更新的内容添加到索引中。 $ git add file1 file2 file3 你现在为commit做好了准备,你可以使用git diff命令再加上–cached参数,看看哪些文件将被提交(commit)。 (如果没有–cached参数,git diff会显示当前你所有已做的但没有加入到索引里的修改。)你也可以使用git status命令来获得当前项目的一个状况。
用户3004328
2018/09/06
7450
Python 技巧篇-让我的程序暂停一下
它的功能就是当程序执行到这一步就暂停执行,如何继续呢?你在控制端按下任意的键就可以
小蓝枣
2020/09/25
3.2K0
Python 技巧篇-让我的程序暂停一下
$(document).click() 在苹果手机上不能正常运行解决方案
本来是如下一段跳转代码,发现在安卓和微信开发者工具上都能正常运行,但是苹果手机就不行了。
全栈程序员站长
2022/07/08
3340
计算机上的Resolver的作用、原理和工作过程
在计算机上,Resolver是一个软件或硬件组件,用于将域名解析为IP地址。它是进行网络通信的必要步骤之一。当计算机通过域名访问网络资源时,它需要将该域名解析为相应的IP地址,以便正确地建立与目标服务器的连接。
一凡sir
2023/08/25
5000
计算机上的Resolver的作用、原理和工作过程
关于GPU VNC不能正常使用的说明
https://cloud.tencent.com/document/product/560/36207
Windows技术交流
2022/09/07
3.8K0
我把ChatGPT部署到了我的手机上
MiniCPM是基于 MLC-LLM 开发,将 MiniCPM 和 MiniCPM-V 在 Android 手机端上运行。
AI uTools
2024/10/29
1050
我把ChatGPT部署到了我的手机上
vmware workstation 克隆后网卡eth0不能正常工作
解决方法如下 修改/etc/udev/rules.d/70-persistent-net.rules 将eth0这行注释掉或者删除, 这里记载的还是克隆系统时的MAC地址,但是新启动的系统MAC已经更改, 将NAME="eth1" 改为 “eth0”,ATTR 标记的MAC地址,这个是虚拟机为这个虚拟网卡分配的MAC,用上面的MAC替换掉 /etc/sysconfig/network-scripts /ifcfg-eth0中的MAC 然后重启即可 还有一个办法,不用eth0,直接用eth1等,把/etc/sysconfig/network-scripts/ifcfg-eth0复制成/etc/sysconfig/network-scripts/ifcfg-eth1
三杯水Plus
2018/11/14
2.4K0
OGG的PURGEOLDEXTRACTS不能工作问题的解决
PURGEOLDEXTRACTS /ogg/dirdat/horcl/hz*,USECHECKPOINTS,MINKEEPDAYS 2
星哥玩云
2022/08/17
8400
我如何将亿次的计算降为实时
前期我们做了一个小程序,实现集体照片的自动分发。简单来说就是用户上传一张集体照,凡是出现在集体照中的人都能自动关联到此张照片,有点类似 QQ 和 FB 之前的标记用户,但是整个过程是自动的,无需人为分发,问题就出现在自动上。
魏守峰
2018/08/01
4290
关于的MongoDB Compass Community 不能够正常连接
解决办法2:     a.先看服务启动没有,如果没有启动服务先启动服务:net stat MongoDB     b.如果服务已经启动了,那有可能是上次不正常关闭mongo,导致存放数据的文件被占用了,被锁住了。只需将D:\MongoDB\db中的mongod.lock文件删除掉。重新启动服务net stat MongoDB即可
拓荒者
2019/03/14
2.7K0
pyCharm全局搜索不能正常使用的解決方法
提示:pyCharm全局搜索不能使用的主要原因是热键被占用 通过百度搜索到的答案一般都是搜狗输入法热键占用的原因导致pyCharm全局搜索不能使用 但是我的电脑并没有安装搜狗输入法 并且经过排查,所有的外部软件的热键都没有占用ctrl + shift + f
全栈程序员站长
2022/09/04
1.8K0
pyCharm全局搜索不能正常使用的解決方法
Ueditor后端配置项没有正常加载,上传插件不能正常使用!的解决过程。
如图:单图上传为灰色,多图上传提示 后端配置项没有正常加载,上传插件不能正常使用!
德顺
2019/11/13
17.6K0
Ueditor后端配置项没有正常加载,上传插件不能正常使用!的解决过程。
工作中遇到的小技巧 一(暂停更新)
       如果浏览器的缓存已满,服务速度可能会减慢,您可能无法下载和查看附件。一下是在Internet Explorer中清空浏览器缓存的步骤:
DannyHoo
2022/05/09
7640
工作中遇到的小技巧 一(暂停更新)
云计算将扼杀一些IT人员的工作机会
如今,很多组织都在将其业务迁移到云计算。但首先面临的问题是,将会经历什么样组织变化。虽然组织希望采用云计算这种突破性技术取得业务上的成功,但工作人员却不想因此而失去工作机会。而这种影响将是工作变动和失业,因此IT工作人员担心因为云计算的应用会失业。 美国波尔州立大学商业和经济研究中心的一项研究表明,在美国2000年至2010年失去的560万个工作岗位中,85%是由于技术变革造成的,其中主要是实现了自动化。 虽然IT行业不是制造行业,但它具有一些共享的特征,因为采用云计算意味着将使一些IT工作失去活力。自
静一
2018/03/27
7080
云计算将扼杀一些IT人员的工作机会
解决 GNS3保存的工程不能正常运行问题
    今天想打开以前保存好的工程复习下实验时,发觉GNS3不让俺正常的运行,真是郁闷。。
py3study
2020/01/07
1.4K0

相似问题

Ubuntu realtek wifi问题

10

Wifi realtek Realtek 8723 on在ubuntu 15.10上的应用

10

在Realtek上Ubuntu 14.04的Wifi问题

10

Ubuntu16.04LTS上的WiFi发行

10

Realtek USB Wifi dongle的安装

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档