- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试在 Ubuntu 14.04 上使用 MySQL 和 Toplink 设置 Glassfish,因此我使用 JSF 2.2 创建了一个简单的 WebApp 来测试一切是否运行正常。然而,我遇到了一些我不太明白的事情。我指定了 @Entity (name = "substances"),如您所见,这是我的表的小写名称(已存在于数据库中)。但是,在我看来,Toplink 将其名称翻译为大写,显然未能找到它:
javax.persistence.RollbackException: Exception [EclipseLink-4002]
(Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd):
org.eclipse.persistence.exceptions.DatabaseException Internal Exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table
'decalin.SUBSTANCES' doesn't exist Error Code: 1146 Call: INSERT INTO
SUBSTANCES (substance_name) VALUES (?) bind => [1 parameter bound] Query:
InsertObjectQuery(org.malik.decalin.beans.Substance@58759bfa)
这是物质类别:
package org.malik.decalin.beans;
import org.malik.decalin.dao.DataAccess;
import java.io.Serializable;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity (name = "substances")
@Named
@RequestScoped
public class Substance implements Serializable {
@Id
@Column (name = "substance_id")
@GeneratedValue (strategy = GenerationType.IDENTITY)
Long id;
@Column (name = "substance_name")
String substanceName;
public String create() {
DataAccess da = new DataAccess();
Substance substance = new Substance();
substance.setId(id);
substance.setSubstanceName(substanceName);
da.createSubstance(substance);
return "jest";
}
// getters and setters
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getSubstanceName() { return substanceName; }
public void setSubstanceName(String substanceName) { this.substanceName = substanceName; }
}
此外,我确实使用 mysqlcheck 工具检查了表“decalin.substances”是否存在。但为什么它一直在寻找“decalin.SUBSTANCES”?
当我在 Windows 8.1 上运行相同的代码时,没有报告任何问题...
所以,我最终在 Substance 类中添加了 @Table(name = "substances") 注解,一切顺利。
我的问题是,为什么 Toplink 在 Ubuntu 上使用大写字母,尽管将 @Entity 中的“name”属性设置为“substances”?为什么它可以在 Windows 上运行?也许我错过了 Toplink 设置中的某些内容(persistence.xml 在两种情况下都是相同的)。
最佳答案
Windows 没有区分大小写的文件系统。正如您在/var/lib/mysql (或 mysql 存储数据的任何位置)中看到的,每个数据库表都有自己的文件(带有 .frm 和 .ibd 扩展名)。因此,在不区分大小写的情况下,文件系统表名不区分大小写,而在区分大小写的情况下(如 Linux 上的 ext4),则它们是区分大小写的。请参阅MySQL documentation了解更多信息。
关于java - 为什么 Toplink 强制表名大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30903699/
如何使用 tabulate 包在 python 中合并多个表? append 在 python 中连接两个表时不起作用。这些表是使用 python 中的 tabulate 包实现的。 table_1
我想使用制表法将两个表格并排显示。 我的方法: test_table1 = tabulate([['Alice', 24], ['Bob', 19]]) test_table2 = tabulate(
我之前在大学学习过 Java 的为期 3 个月的短期类(class)(唯一的项目是编写数独游戏)。 我想学习一种对于一般自动化任务来说最流行的编程语言。到目前为止,我已经选择了 AHK,它帮助我完成了
我的脚本有问题.. 用户需要向一个 div 输入数据,当一个 div 已满(4 个字符)时,脚本应自动移动到下一个字段。 在处理输入时,这非常有效: http://jsfiddle.net/4m5fg
我正在使用 MySQL Workbench 来编写一些查询。我想设置 MySQL 编辑器,以便在按 Enter 键换行时在下一行中保持对齐或水平制表。就像编程编辑通常所做的那样,我想你就是我的意思。
我正在尝试:(1) 估计只有因变量发生变化的多个模型 (2) 使用 Stargazer 包将结果制表 以下代码有效,但我必须为每个模型重复一行代码: library(stargazer)
我是一名优秀的程序员,十分优秀!