gpt4 book ai didi

java - 使用关联注释的表的复合键

转载 作者:行者123 更新时间:2023-12-02 12:39:13 24 4
gpt4 key购买 nike

我是hibernate的新手,我正在尝试实现一个使用此架构的基本应用程序(它不遵循我只是为了清楚起见而使用它的符号)

enter image description here

这是我的类(class)

@Entity
@Table(name = "race")
public class Race {
@Id
@GeneratedValue
private UUID id;
private String name;
}

@Entity
@Table(name="np_character")
public class NPCharacter {
@Id
@GeneratedValue
private UUID id;
@OneToOne
private Race race;
private String name;
private int age;
}

@Entity
@Table(name="main_female_character")
public class MainFemaleCharacter {
@Id
@GeneratedValue
private UUID id;
@OneToOne
private Race race;
private String name;
private int age;
}

@Entity
@Table(name="copulation_registry")
public class CopulationRegistry {
// ??
private NPCharacter npCharacter;
// ??
private MainFemaleCharacter femCharacter;
private int times;
}

但是我遇到了 copulation_registry 类的问题。我到处使用 OneToOne 注释,而不是使用对键的引用。但我应该在这里做什么? id_femPlayerid_npCharacter 对是唯一的。

我应该使用 EmbeddedId 注释还是可以以某种方式使用关联注释来表示相同的关系?

最佳答案

You can annotate class CopulationRegistry with @IdClass

@Entity
@IdClass(CopulationRegistryKey.class)
@Table(name="copulation_registry")
public class CopulationRegistry {
@Id
private NPCharacter npCharacter;
@Id
private MainFemaleCharacter femCharacter;
private int times;
}


public class CopulationRegistryKey{
private NPCharacter npCharacter;
private MainFemaleCharacter femCharacter;
}

关于java - 使用关联注释的表的复合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44996344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com