我有一个母公司类别(工具),有三个子公司(股票、债券、Etf)。父类还与类(InstrumentPrice)有一个OneToMany关系。JPA联接策略用于父实体和子实体之间。当一个子项被持久化(例如Stock)时,工具中的一个条目也会自动持久化,并具有所有公共属性。这很好用。但是,如何为类InstrumentPrice创建条目?我是否必须在保存股票后从DB读取实体工具,并使用InstrumentPrice更新工具?
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected int id;
}
父类工具
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "instr_type", discriminatorType = DiscriminatorType.STRING, length = 1)
@Table(name = "instrument")
public class Instrument extends BaseEntity {
@Column
private String symbol;
@Column
private String isin;
@Column
private String name;
@Column
private boolean active;
@OneToMany(mappedBy = "instrument", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<InstrumentPrice> instrumentPriceList;
// public getters & setters
....
类仪器价格
@Entity
@Table(name = "instrumentprice")
public class InstrumentPrice extends BaseEntity {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "instrument_id", nullable = false)
private Instrument instrument;
@Column
private LocalDate date;
@Column
private double open;
@Column
private double high;
@Column
private double low;
@Column
private double close;
@Column
private long volume;
// public getters & setters
....
子类库存
@Entity
@DiscriminatorValue("S")
@PrimaryKeyJoinColumn(name = "id")
@Table(name = "stock")
public class Stock extends Instrument {
... fields specific to Stock ...
}
您必须设置关系的两边。在Instruments类中,创建用于添加InstrentPrice实体的方法。
public void addInstrumentPrice(ip){
instrumentPriceList.add(ip);
ip.setInstrument(this);
}
高尔夫球场示例:我们有类,,和。 这里有很多为人父母的事情。 必须由18条赛道组成,这在高尔夫球场是很正常的 但是我遇到了一个问题。当我尝试调用的构造函数时... ... 我必须同时通过和的实例,但是。。。 ... 这些函数的构造函数要求我传递一个的实例。我陷入了一个递归问题。 我可以通过不再让每个成为这些类的成员来“解决”这一问题,但这让人感觉很不舒服,就像糟糕的做法一样-没有理由不让它们成为f
问题内容: 我想知道如何将某些函数返回的父对象转换为子类。 我不能更改A类。如果可以的话,我可以对A类实现functionIneed,但是由于代码的结构,这是不可能的。 问题答案: Python不支持“广播”。您将需要编写代码,以便它可以适当地进行初始化。
我有一个定义如下的表: 然后我有了这个继承的表: Hibernate在数据库中创建了两个表,但是当我试图在JPA上删除一个继承的对象时,它会返回外键约束违反错误,因为它试图删除第一个类。如何在删除超类时首先删除继承类,以避免键约束违反错误? 谢谢你。
在上一讲代码的基础上,做进一步修改,成为了如下程序,请看官研习这个程序: #!/usr/bin/env python #coding:utf-8 class Person: def __init__(self, name, email): self.name = name self.email = email class Programmer(P
问题内容: 因此,我有两个来自javascript.info的示例: 范例1: 范例2: 从示例2开始:当代码到达时,它在中找不到任何属性,因此它爬升到原型并在那里进行了更改。这就是为什么两只仓鼠都相等的原因,换句话说,它们的肚子也一样。 据此我了解,当编写并添加一个不存在的新属性时,解释器将沿着原型链向上移动,直到找到该属性,然后再进行更改。 但是在示例1中,发生了其他事情: 我们运行,它发生了
本文向大家介绍python中子类继承父类的__init__方法实例,包括了python中子类继承父类的__init__方法实例的使用技巧和注意事项,需要的朋友参考一下 前言 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。 注意:这个名称的开始和结尾都是