- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试在连接表上映射与额外属性(标志)的关系,但没有在实体中明确定义此连接表。
问题:
业务被分配到0个或1个主要国家,业务也被链接到0个或多个次要国家。
我有三个表:Business
、Country
、Business_Country
在我的 Business
中,我有一个 @WhereJoinTable
,它非常适合检索:
@OneToOne
@JoinTable(
name="business_country",
joinColumns = @JoinColumn( name="business_id"),
inverseJoinColumns = @JoinColumn( name="country_id")
)
@WhereJoinTable(clause="is_main = 1")
private Country mainCountry;
@OneToMany
@JoinTable(
name="business_country",
joinColumns = @JoinColumn( name="business_id"),
inverseJoinColumns = @JoinColumn( name="country_id")
)
@WhereJoinTable(clause="is_main = 0")
private Set<Country> secondaryCountries = new HashSet<>();
我想知道这个 @WhereJoinTable
执行保存的对应物是什么。
仅仅创建实体 Business
并向其添加国家就会违反约束:
cannot insert NULL into ("TESTSCHEMA"."BUSINESS_COUNTRY"."IS_MAIN")
我想做的是将 mainCountry
的 is_main 设置为 1
并为 中的所有条目设置为
。0
次要国家
我想知道自定义 @SQLInsert
是否可行?
最佳答案
您可以使用 @SQLInsert
为关联表指定自定义sql插入语句:
@OneToOne
@JoinTable(
name="business_country",
joinColumns = @JoinColumn( name="business_id"),
inverseJoinColumns = @JoinColumn( name="country_id")
)
@WhereJoinTable(clause="is_main = 1")
@SQLInsert(sql = "insert into business_country (business_id, country_id, is_main) values (?, ?, 1)")
private Country mainCountry;
@OneToMany
@JoinTable(
name="business_country",
joinColumns = @JoinColumn( name="business_id"),
inverseJoinColumns = @JoinColumn( name="country_id")
)
@WhereJoinTable(clause="is_main = 0")
@SQLInsert(sql = "insert into business_country (business_id, country_id, is_main) values (?, ?, 0)")
private Set<Country> secondaryCountries = new HashSet<>();
关于java - 集合的自定义 Hibernate 插入,@WhereJoinTable 的对应物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303861/
我已经习惯了 hibernate ,但我时不时地跌跌撞撞,这是另一个。 我正在努力实现以下目标: @OneToMany @JoinTable(name = "inter_spec",
遵循 java 文档 @哪里 添加到集合的元素实体或目标实体的 Where 子句。该子句是用 SQL 编写的。这里的一个常见用例是软删除。 @WhereJoinTable 要添加到集合连接表的 Whe
我在 Course 和 User 之间有一个多对多的关系,定义如下: 用户根据以下三种角色之一与类(class)相关联: 学生 (1) 标记 (2) 讲师 (3) 在我的数据模型中,我有一个User
我正在尝试在连接表上映射与额外属性(标志)的关系,但没有在实体中明确定义此连接表。 问题: 业务被分配到0个或1个主要国家,业务也被链接到0个或多个次要国家。 我有三个表:Business、Count
有两个表A和B: A(id, b_id, a_other) B(id, b_other) A和B对应的类如下: @Entity @Table(name = "A") public class A {
我是一名优秀的程序员,十分优秀!