- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
两个表如:
CREATE TABLE foo (
id INT PRIMARY KEY,
x TEXT
);
CREATE TABLE bar (
foo_id INT REFERENCES foo (id) ON DELETE CASCADE,
y TEXT,
z TEXT
);
...可以这样映射:
@Table(name = "foo")
@SecondaryTable(name = "bar", pkJoinColumns = @PrimaryKeyJoinColumn(name = "foo_id", referencedColumnName = "id"))
class Foo {
@Id
int id;
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "y", column = @Column(table = "bar")),
@AttributeOverride(name = "z", column = @Column(table = "bar"))
})
Bar bar;
}
@Embeddable
class Bar {
String y;
String z;
}
有没有更简单的方法来完成这个映射,要么只使用标准 JPA 注释,要么使用特定于 Hibernate 的注释(并且不在可嵌入对象中引入父引用)?
将此与使用 @ElementCollection
和 @CollectionTable
引用一组 @Embeddable
对象的轻松程度进行比较。
最佳答案
抱歉回答晚了,但我对这个问题很感兴趣,所以我想我会尝试一下。
一个更优雅的解决方案是使bar
的内容成为Entity 而不是Embeddable,并使用OneToOne 关系而不是Embedded。您还需要记住使用 @PrimaryKeyJoinColumn
而不是 @JoinColumn
:
@Entity
@Table(name = "bar")
class Bar {
@Id
int fooId;
String y;
String z;
}
...
@Entity
@Table(name = "foo")
class Foo {
@Id
int id;
@OneToOne
@PrimaryKeyJoinColumn
Bar bar;
}
最大的好处是Foo
不再需要知道Bar
的内容。根据数据库的命名策略,您可能还需要在 Bar
中指定 fooId
的列名称,例如 @Column(name = "foo_id")
.
关于java - 在单独的表中映射 @Embeddable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599840/
我想知道是否可以在另一个 Embeddable 中包含一个 Embeddable 的 ElementCollection ? 这是我的供应商实体的示例,其中包含可嵌入类型的地址列表: @Entity
我们正在将旧的基于 xml 的配置转换为基于注解的配置 情况 有一个类注释为 @Embeddable(ParentPk.java) ,另一个类扩展了这个类,它是 @Embeddable(ChildPk
JPA ElementCollection Embeddable 可以具有 ElementCollection List Embeddable 属性吗? @Entity class Perso
我有实体 Ride 和 @ElementCollection(targetClass = RideLocation.class): @ElementCollection(targetClass = R
在搜索了 JPA 文档和各种帖子后,我对 JPA2.0 是否可以实现以下功能感到困惑。我刚开始使用 JPA,所以如果我做了一些愚蠢的事情,请原谅, 我的领域模型有一个“投资组合”,其中包含零个或多个“
我正在使用 @ElementCollection 作为自定义对象列表 @ElementCollection @CollectionTable(name = "choice", joinColumns
我正在使用 v3 youtube API 根据其 ID 获取视频数据。 这是我当前的搜索: https://www.googleapis.com/youtube/v3/videos?part=snip
两个表如: CREATE TABLE foo ( id INT PRIMARY KEY, x TEXT ); CREATE TABLE bar ( foo_id INT REFERENCE
想象一下下面的类 @Embeddable class A { @ManyToOne public B classB; ... public State someEnum
我收到了一个 Eclipse 错误:@EmbeddedId . 这是实体: @Entity @Table(name = "PERSON") public class Person implements
我按照 sitepoint moviestore tutorial进行操作,除了用户购买电影后未将视频加载到iframe中之外,其他一切工作正常。我在一栏中有一个带有youtube url的csv文件
我有一个简单的关系,其中一个实体有许多特定于它的地址,定义为: @Entity public class Corporation { @Id private Long id;
嵌入式和实体之间是否可能存在双向关系或仅存在单向关系? @Entity public class Employee { @Id private long id; ... @Embedd
我看到许多使用 @Embeddable 建立一对多关系的示例,如下所示: @Entity @Table(name = "profiles") public class Profile { @I
如何获取 Maven 插件内的 Maven 项目的所有配置文件列表? 会是: MavenEmbedder.readModel(new File("path to pom.xml")).getProfi
我尝试在可嵌入中使用 elementCollection,但 JPA2.0 似乎忽略它。 如果我进行调试,我会看到可嵌入的集合已被填充,但它不会被持久化,并且 JPA 不会抛出任何异常。它似乎只是由于
我想创建一个类 Exporter,它有两个电话号码:座机和手机。知道电话号码由国家代码和号码组成,我创建了一个 Embeddable 类: @Embeddable public class Embed
我有一个场景,hibernate 中的 Embeddable 类使用Entity。根据我在SO和其他链接上找到的各种答案,我们可以在Embeddable类中编写@ManyToOne,@OneToMan
我有一个用户类,它有一个类配置文件@Embedded。如何为 Profile 的实例提供对其所有者 User 类的引用? @Entity class User implements Serializa
我有一个 JPA 实体的类层次结构,它们都继承自 BaseEntity 类: @MappedSuperclass @EntityListeners( { ValidatorListener.class
我是一名优秀的程序员,十分优秀!