我使用hibernate在我的应用程序中创建了< code>Device表。每个< code >设备对象包含3种类型的对象,如< code>SADevicede 、< code>TXDeviceType 、< code>RxDeviceType。(ie)设备包含SADeviceType、TXDeviceType、RxDeviceType列表
我的目标是使用用户定义的限制为每个SADevicetype、TXDeviceType和RxDeviceType生成警报。这意味着设备A的SADeviceType只应为重大错误生成。设备A的TXDeviceType应仅为小错误生成。设备B的SADeviceType、TXDEVICETETYPE应针对主要和次要错误生成警报。
我想在这里使用每个类的表层次结构。例如,我想创建AlarmRestrictionDetail类,子类是SAAlarmDetail、TXAlarmDetail和RxAlarmDetail。如果我要使用hibernate创建这个类,它将如何处理每个类层次结构表中的鉴别器是否为多对一关系,以及如何在一个鉴别器列中生成三个外键?
如果这不是一个好主意,有谁能帮助我,当我使用hibernate时,哪种表结构是最好的?
参考代码如下
public class Device {
private Integer id;
private List<SADevicetype> saDeviceTypeList;
private List<RxDeviceType> rxDeviceTypeList;
private List<TXDeviceType> txDeviceTypeList;
}
public class AlarmRestrictionDetail {
public Integer id;
public String alarmName;
public String severity;
}
public class SAAlarmDetail extends AlarmRestrictionDetail{
// device type is a discriminator column
public SADevicetype deviceType;
}
public class TXAlarmDetail extends AlarmRestrictionDetail {
// device type is a discriminator column
public TXDeviceType deviceType;
}
在< code >每个类层次结构一个表方法中,如果您需要在代码中包含discriminator的值,可以在映射中使用< code >只读属性。< br >
public enum Devicetype {SADevicetype("SA") ,TXDeviceType("TX") ,...}
public class AlarmRestrictionDetail {
public Integer id;
public String alarmName;
public String severity;
public Devicetype deviceType;
}
<class name="AlarmRestrictionDetail " table="AlarmRestrictionDetailTable">
<id name="ID" column="id"/>
<property name="alarmName" column="severity" length="50"></property>
<property name="severity" column="severity" length="50"></property>
<discriminator column="discriminator_column" type="string"/>
<property name="devicetype" column="discriminator_column" access="readonly"/>
<subclass name="SAAlarmDetail " discriminator-value="SA">
<!-- ETC-->
</subclass>
<subclass name="TXAlarmDetail" discriminator-value="TX">
<!-- ETC-->
</subclass>
</class>
我有一个基于hibernate策略的实体层次结构,并且我在application.yml中设置了。 当我使用h2db运行测试时,我得到“null not allowed for column”。 当指令创建形状表时,它将鉴别器列设置为,因此得到“null not allowed for column”。 是否有一种方法可以使用DDL-AUTO强制区分器列为null?
问题内容: 我具有实现的接口层次结构。我想使用不可变的对象,所以我想设计一些类来方便地构造这些对象。但是,我有很多接口,并且我不想在每种类型的子生成器中重复构建s 的代码。 因此,假设以下定义: 我怎样才能有效地实施的建设者和?他们应支持以下操作: 和 我不想为每个子生成器实现一个特殊情况。 编辑以添加第二个属性,以澄清使用简单的泛型无法做到这一点。我不是在寻找一种方式来组合和-我正在寻找一种方式
我们有一个遗留表,我们不想在其中添加鉴别器列。没有鉴别器列,是否有可能有每个层次结构的表? 我的父类代码: 我的孩子班: 你可以在我上面的例子中看到,我必须使用鉴别器。
我正在处理一个需求。当前有一个搜索页面,其中包含值(示例数据)1)Employee和2)Sport Person的列表框。 对象层次结构(Hibernate Bean)Person是实际对象,它具有两个不同的类1)Employee和2)基于Sports Person的鉴别器列 Person_Type(鉴别器列)。 在搜索页面上,如果用户选择任何一个列表框,将从该子类中得到数据。 现在的要求是同时显
问题内容: 在Java中,我们可以在一个类中创建多少个构造函数。 问题答案: 严格来说,JVM类文件格式将一个类的方法(包括所有构造函数)限制为少于65536。而且,根据汤姆·哈顿(Tom Hawtin)的说法,有效限制为65527。每个方法签名在常量池中占用一个插槽。由于65535池条目中的某些条目(不可避免地)被其他事物消耗,因此格式良好的类文件不可能使用所有可能的方法/构造函数ID。 参考-
在Java中,我们可以在一个类中创建多少构造函数。