- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试基于 ImprovedNamingStrategy 实现我自己的 Hibernate NamingStrategy。这很好……只是多对多关系的外键很丑。
示例场景:
public class Teacher {
@ManyToMany
private Set<Course> courses;
}
public class Course {
@ManyToMany
private Set<Teacher> teachers;
}
使用我的自定义命名策略
public class MyImprovedNamingStrategy extends ImprovedNamingStrategy {
private static final long serialVersionUID = 1L;
@Override
public String foreignKeyColumnName(String propertyName, String propertyEntityName, String propertyTableName, String referencedColumnName) {
String s = super.foreignKeyColumnName(propertyName, propertyEntityName, propertyTableName, referencedColumnName);
return s.endsWith("_id") ? s : s + "_id";
}
}
这将生成一个表 teachers_courses,其中包含 teachers_id、courses_id 列。
我试图实现的是一个名为 teacher_course 的表,其中包含字段 teacher_id、course_id。有什么建议,如何将我的实体的复数命名属性具体化?
最佳答案
this would lead to a table teachers_courses (...)
你确定这部分吗?据我所知,JoinTable
的默认名称由 两个关联的主要实体表(首先是拥有方)的串联名称组成,用下划线分隔(例如 Teacher_Course
).
(...) with the columns teachers_id, courses_id.
对于这一部分,您必须实现一个去复数化算法,该算法将英语拼写考虑在内:
老实说,这看起来并不容易,如果你想正确的话,可能需要某种字典。
我认为更好的选择是使用 JoinColumn
和 JoinTable
注释覆盖默认名称。
关于java - 具有多对多外键的自定义 Hibernate NamingStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3741875/
NamingStrategy 在 Hibernate 4.2/4.3 (HHH-7079) 中已被标记为已弃用。从 Hibernate 5 开始,现在它将附带两个替换(?)接口(interface)
网上有一个关于如何在 Hibernate 中使用注释的示例(在此之前我也研究过相同的示例,但它使用了 .xml。并且我已经成功地使其正常工作)。所以现在我有: Initial session fact
我正在为我们的模式编写一个 Hibernate NamingStrategy。 我们的遗留模式(出于某种原因!)在列名称中包含类型信息。例如: strproperty intcustomer 我正在从
我正在尝试基于 ImprovedNamingStrategy 实现我自己的 Hibernate NamingStrategy。这很好……只是多对多关系的外键很丑。 示例场景: public class
我有一个 c# 类,我正在尝试使用 Newtonsoft.Json 正确序列化它.该属性是一个枚举类型,我希望该值被序列化为“枚举名称的小写版本”。有一个JsonConverterAttribute可
我正在开发一个使用 Hibernate 和 JBoss 5.1 的项目。我们需要将实体类映射到遵循特定命名约定的 Oracle 表。我想避免在注释中指定每个表和列的名称。因此,我目前正在考虑实现 or
我以为 joinKeyColumnName() 处理 @JoinColumn,但实际上我无法让它工作。我想摆脱在 @JoinColumn 中编写 name="" 的必要性,我希望将该属性用作列名。 最
我在一个项目中同时使用 ORMLite 和 Dapper,并且希望对两个 ORM 使用的命名约定进行标准化。为此,我想这样设置 NamingStrategy: OrmLiteConfig.Dialec
我需要让 Hibernate 从实体开始自动生成数据库,但我希望它们全部大写。 这在过去是有效的,现在我用大写和小写字母搞乱了列名。 我启用了 .setProperty("hibernate.hbm2
我如何调整 Spring Data JDBC NamingStrategy表现得像 Hibernate 的 PhysicalNamingStrategy ? 我有以下实体: /** * Campus
我想做什么 我正在尝试从 WildFly 8.2.0 迁移到 WildFly 10.0.0,这意味着我已经(并且想要)从 Hibernate 4.3 迁移到 Hibernate 5.0。 设置 Jav
我正在尝试使用 hibernate 将本地数据库连接到我的应用程序。我收到以下错误: Jul 02, 2019 9:20:08 PM org.hibernate.Version logVersion
我已经在 Eclipse Ganymede 中安装了 Hibernate Tools 3.2.4.GA。安装它的主要驱动程序是能够以交互方式发出 HQL 查询。 我已经配置了我们所有的映射文件、hib
我在连接数据库时遇到问题,hibernate 显示错误: java.lang.NoClassDefFoundError: net/bytebuddy/NamingStrategy$SuffixingR
在 Eclipse 中运行此代码时出现错误。我已经创建了 Student.java 文件: public class Student { private int id; private
我是一名优秀的程序员,十分优秀!