java - 子实体 hibernate

标签 java hibernate jpa

快速 Hibernate 问题 - 如何使用 Hibernate 注释将此类定义为实体 -

public class NativeType {
  private long id;    
  private String name;
  private int maxPrecision;
  private byte maxScale;
  private DataStoreProvider provider;

作为 AbstractDataStoreProvider 类中的 map 集合链接 -

public abstract class AbstractDataStoreProvider implements DataStoreProvider,
  Serializable{

  private Map<String, NativeType> uniqueNativeTypes;
  ..

public interface DataStoreProvider {

所以我可以像这样将其存储在数据库表中 -

**datastore_provider**
provider_id  |  provider_name

**native_type**
native_type_id  |  name  |  max_precision  |  max_scale  |  provider_id

我认为是我,但我无法轻松浏览 Hibernate 规范。 Java 新手,JPA + Hibernate 新手。感谢指导!

最佳答案

代码示例

我认为你可以使用以下内容 -

@Entity
@Table(name = "native_type")
public class NativeType {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "native_type_id")
    private Long id;

    private String name;

    @Column(name = "max_precision")
    private int maxPrecision;

    @Column(name = "max_scale")
    private byte maxScale;

    @ManyToOne
    @JoinColumn(name="provider_id")
    private DataStoreProvider provider; 

    // rest of the class (getter setter etc.)
}

ID生成

我假设您正在自动生成数据库 ID,因此我用 @GenerateValue 注释对其进行了标记。至于策略,我指定了AUTO,仅适合本地实验。对于生产级应用程序,您必须在 SEQUENCEIDENTITYTABLE 之间进行选择。

关系映射

我假设您也将创建一个 DataStoreProvider 实体。在这种情况下,您可以按照上面的描述指定它们之间的关系。

引用

更多引用可以咨询this excellent book .

关于java - 子实体 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34248809/

相关文章:

java - @ManyToMany 额外列

java - 没有 EntityManager 绑定(bind)到这个线程 JPA

java - Hibernate 标准按父级过滤

java - 如何在 ListView 中显示格式如下 "12:30 PM"的 TextView ?

java - 使用 JSON 注释更改返回类型

java - JPA OneToMany - 删除最后一个子项时删除父项

java - Hibernate:两个属性中生成的值相同

java - Guava 不可变集合有用还是只是额外的开销?

java - 如何生成clojure代码在运行时调用java方法?

java - 你有 Hibernate 实体的通用基类吗?