- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想映射一列,而不使用列名。
我正在使用计数实体,并且想对同一实体使用多个不同的查询:
@Entity
public class CountDTO extends Number {
@Id
// below causes an error in my test, hsql not same syntax
@Column(name = 'COUNT')
private Long count;
在我的 prod (oracle) 数据库中,我可以执行 select count() as COUNT from
...但是,使用 hypersql 内存数据库时,相同的语法不起作用?
他们是在 HQL 中映射单个列别名的 oracle/hsql 兼容方式吗?
最佳答案
您的问题是 COUNT
是 reserved keyword for HSQL , 但是 not for Oracle .
根据 HSQL 文档,可能仍然可以使用 COUNT
作为标识符,如果你要么
按照 Hibernate documentation 中的描述屏蔽它或在 JPA 规范中(参见 JPA 2 spec 的第 2.13 章;您需要接受他们的许可协议(protocol))。请注意,JPA 规范提到了双引号,而 Hibernate 文档提到了反引号(将根据使用的数据库方言将其转换为适当的字符)。
来自 hibernate 文档:
You can force Hibernate to quote an identifier in the generated SQL by enclosing the table or column name in backticks in the mapping document. Hibernate will use the correct quotation style for the SQL Dialect. This is usually double quotes, but the SQL Server uses brackets and MySQL uses backticks.
来自 JPA 2 规范:
Using annotations, a name is specified as a delimited identifier by enclosing the name within double quotes, whereby the inner quotes are escaped, e.g.,
@Table(name="\"customer\"")
.
通过执行 SET DATABASE SQL NAMES FALSE
配置 HSQL 以允许它(然而,这应该已经是默认设置,它只允许“使用大多数关键字”,而不是全部 - 编辑:COUNT
根据文档仍将被禁止)
我的建议是尽可能避免使用标识符,因为您永远不知道其他地方可能会出现什么问题(例如,有人可能认为 Hibernate 本身能够屏蔽关键字)并使用类似 COUNT1
的标识符。而不是列名。
JPA 规范的上述部分还解释了为什么 Hibernate 不屏蔽名称本身:
By default, the names of database objects must be treated as undelimited identifiers and passed to the database as such.
JPA 规范还提到了一个 <delimited-identifiers/>
选项“指定所有用于持久性单元的数据库标识符被视为定界标识符”,但这似乎只能用于 XML 映射文件。
关于java - Hibernate实体只有一列,没有名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31247046/
古今中外,人其实最珍惜自己的姓名,分量可谓举足轻重,几乎构成一个人最重要的人生价值载体,同理,一个网站的标题也就像网站的名字一样,标题的定性决定着这个网站的路怎么走,SEO的工作将会围绕着这些进行展
我需要强制执行 LASTNAME/FIRSTNAME Something like Smith/John 这种模式。 字符可以是字母数字(小写/大写)也包括特殊字符,如 ë 等。 图案: 基本上规
我有两个字段:first 和 last 我正在尝试使用 multi_match模糊匹配全名: "multi_match": { "query": name, "fields": [
国王i | 王妃i 青梅。 | 竹马。 我要逆天 | 我要爆炸 以前呢i | 后来呢i 抱紧我i | 深吻我i 心悦 | 钟意 依赖 | 共生 阿怪i | 阿乖i 花岛丶 | 草浅丶
我是Delphi的新手。每次运行事物时,都会出现此错误: adoquery1:未找到参数“名字” procedure TForm1.Button1Click(Sender: TObject); beg
我是 Akka 新手,我正在尝试制作一个简单的项目,即有鱼的水族馆。问题是我不知道如何获取我在这一行中声明的 Actor 的名字 final ActorRef fish1 = system.actor
以下是要求:我。如果有名字、中间名和姓氏,则仅显示名字和姓氏二.如果有第一个和最后一个,则显示第一个和最后一个三.如果只有名字,则直接显示 我有以下代码: String fullName = "fir
我使用此 PHP 正则表达式来检查字段是否包含名称(至少包含名字/姓氏,然后是可选的其他中间名或缩写)的 true/false。 $success = preg_match("/([\x{00c0}-
当使用 django allauth 进行社交帐户注册时,allauth 自动将用户名定义为从 3rdparty 获取的 first_name。因此,例如:如果 facebooks John Cucu
我想尝试在 Javascript 中检测一个人名字的不同部分,并将它们剪掉,以便我可以将它们传递给其他东西。 名称可以以任何格式出现——例如:- 维多利亚·米·莱恩小姐 Victoria C J Lo
这是我读过的教程中的查询 CREATE TABLE Employee ( id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, depa
我从包含用户名的文本框中输入了用户输入 输入可以如下所示: var input = "Doe, John M"; 但是,输入可能要复杂得多。像: var input = "Doe Sr, John M
在 Javascript 中,我尝试将全名(名字、中间名和姓氏)输入到字段中,单击提交按钮后将输出到三个单独的字段:字符长度、中间名和 3缩写。到目前为止,我已经到达字符字段,但我对如何获取两个空格之
我尝试通过 java 解析 XML DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder
formatName 方法应该接受名为 name 的字符串,其中包含格式为“First Last”的名称。你可能会认为字符串中只有一个空格。该方法应该创建并返回一个包含名称的字符串格式为“最后,第一个
我是 node.js 的新手。我正在尝试创建一个注册页面并使用 mysql 将输入的值保存在数据库中。 我可以通过在请求 header 上传递参数来做到这一点。但是,在请求 header 中传递参数始
我需要一个函数来根据以下字段检查重复条目:first_name、last_name 和 tel我尝试过浏览论坛,但似乎找不到帮助。 prepare($sql); $stmt->bind_param('
我有下表: First Name Bryce Marcellin Caroline Kerry Roberto Mary Carol Warren Bonnie Terry L
所以我制作了一个代码让用户输入他们的名字和姓氏;然后交换两个位置。 例如。 Bulota Babi 成为 Babi, Bulota 这是我的代码 public class trial { pu
我想知道你是否有两列让我们说 first name. last name. 您在数据库中存储的内容。 您能否在数据库中创建一个“动态”列“全名”,自动根据名字和姓氏创建姓名? firstname
我是一名优秀的程序员,十分优秀!