先贴代码
/**
* 所有model的基类
* @author chenas
*2013年08月11日
*/
@Entity
public class BaseModel {
//主键
public long id; @Id
@GeneratedValue
@Override
public long getId() {
return id;
} @Override
public void setId(long id) {
this.id = id;
}
}
@Entity(name="BUYER_USER")
public class BuyerUser extends BaseModel{ private String username;
private String password;
private long addrId;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public long getAddrId() {
return addrId;
}
public void setAddrId(long addrId) {
this.addrId = addrId;
}
}
@Entity(name="Shop_USER")
public class ShopUser extends BaseModel{ private String username;
private String password;
private long addrId;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public long getAddrId() {
return addrId;
}
public void setAddrId(long addrId) {
this.addrId = addrId;
}
}
hibernate.cfg.xml<mapping class="com.eshop.model.BuyerUser"/>
<mapping class="com.eshop.model.ShopUser"/>测试new SchemaExport(new AnnotationConfiguration().configure()).create(true, true);
结果生成的表只有basemodel一张,如下
求解释,还有能有什么办法用继承的方法使子类都有父类的属性,并在数据库中映射成数据库表?hibernate数据库javaentity
/**
* 所有model的基类
* @author chenas
*2013年08月11日
*/
@Entity
public class BaseModel {
//主键
public long id; @Id
@GeneratedValue
@Override
public long getId() {
return id;
} @Override
public void setId(long id) {
this.id = id;
}
}
@Entity(name="BUYER_USER")
public class BuyerUser extends BaseModel{ private String username;
private String password;
private long addrId;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public long getAddrId() {
return addrId;
}
public void setAddrId(long addrId) {
this.addrId = addrId;
}
}
@Entity(name="Shop_USER")
public class ShopUser extends BaseModel{ private String username;
private String password;
private long addrId;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public long getAddrId() {
return addrId;
}
public void setAddrId(long addrId) {
this.addrId = addrId;
}
}
hibernate.cfg.xml<mapping class="com.eshop.model.BuyerUser"/>
<mapping class="com.eshop.model.ShopUser"/>测试new SchemaExport(new AnnotationConfiguration().configure()).create(true, true);
结果生成的表只有basemodel一张,如下
求解释,还有能有什么办法用继承的方法使子类都有父类的属性,并在数据库中映射成数据库表?hibernate数据库javaentity
如果要做成真正的继承,只需要在父类上面加上
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS),这个继承策略自己看,TABLE_PER_CLASS就是你想要的一个子类一张表。这种继承方式是可以多态查询的。才是真正的继承。希望对你有用。