我正在尝试映射具有接口(INameTypeInfo)属性的复合对象。此接口由2个类(PersonNameInfo和CompanyNameInfo)实现。同一表中所有这三种结构的信息。
该对象如下所示:
public class Name : Entity
{
public virtual string FirstName {get; set;}
public virtual string LastName {get; set;}
public virtual INameTypeInfo NameTypeInfo {get; set;}
etc...
}
其他对象如下所示:
public class PersonNameTypeInfo()
{
public string SSN {get; set;}
public string AKAFistName {get; set;}
public string AKALastName {get; set;}
etc...
}
public class CompanyNameTypeInfo()
{
public string FederalIDNumber {get; set;}
public string AKAName {get; set;}
etc...
}
db表如下所示:
姓名
另请注意:Name对象也会被其他对象继承,例如Party:Name,Provider:Name等......
数据库是一个已经在使用的遗留数据库。
我如何用流利的方式映射它的任何例子都会有所帮助。
感谢。
答案 0 :(得分:0)
public class person
{
// this is the table for person
private String name;
private String lastName;
private Company company;
}
public class Company
{
private string name;
private string address;
// more properties.
}
当您加载人员时,您也可以使用该公司。所以当你说 Person.company.name它将获取名称,如果您更改处理公司Hibernate的人员中的任何内容,则在将其提交回数据库时级联所有更改。
也许这不是你的问题,而只是一种思考的食物。
但如果你想让它们成为复合键,你可以制作第三个对象示例
public class organization
{
private person person;
private company company;
}
而不是让一个人在公司里面。当你检索组织时,你会得到个人和公司DAO