首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

2009.11.24——Hibernate(五) Annotations注解之@onttoone

2012-10-26 
2009.11.24——Hibernate(5) Annotations注解之@onttoone2009.11.24——Hibernate(5) Annotations注解之@ontto

2009.11.24——Hibernate(5) Annotations注解之@onttoone
2009.11.24——Hibernate(5) Annotations注解之@onttoone
别的也不说了,就看下我写的例子吧,以Car和License
数据库建表:

create table car ( cid number(7) primary key,  carName varchar2(20) not null);


create table license( lid number(7) primary key,  licenseNumber varchar2(10) not null,  licenseColor varchar2(10) not null,  cid number(7) references car(cid));


insert into car values(1,'宝马');insert into car values(2,'奔驰');insert into car values(3,'奇瑞');insert into car values(4,'法拉利');insert into license values(1,'888888','黑色',1);insert into license values(2,'111111','红色',2);insert into license values(3,'222222','白色',3);insert into license(lid,licenseNumber,licenseColor) values(4,'666666','蓝色');


程序
Car.java
@Entity@Tablepublic class Car {private Integer cid;private String CarName;private License license;//双向有,单向没有@Id@SequenceGenerator(name="car_seq",sequenceName="car_seq",initialValue=5,allocationSize=1) @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="car_seq")public Integer getCid() {return cid;}public void setCid(Integer cid) {this.cid = cid;}public String getCarName() {return CarName;}public void setCarName(String carName) {CarName = carName;}@OneToOne(cascade={CascadeType.ALL},mappedBy="car")//双向的有,单向的就没有了public License getLicense() {return license;}public void setLicense(License license) {this.license = license;}//关系属性的操作public void addLicense(License license){this.license = license;this.license.addCar(this);}public void removeLicense(){this.license.removeCar();this.license = null;}}



License.java
@Entity@Tablepublic class License {private Integer lid;private String licenseNumber;private String licenseColor;private Car car;@Id@SequenceGenerator(name="license_seq",sequenceName="license_seq",initialValue=4,allocationSize=1)@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="license_seq")public Integer getLid() {return lid;}public void setLid(Integer lid) {this.lid = lid;}public String getLicenseNumber() {return licenseNumber;}public void setLicenseNumber(String licenseNumber) {this.licenseNumber = licenseNumber;}public String getLicenseColor() {return licenseColor;}public void setLicenseColor(String licenseColor) {this.licenseColor = licenseColor;}@OneToOne(cascade={CascadeType.ALL})@JoinColumn(name="cid")public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}//关系属性的操作public void addCar(Car car){this.car = car;}public void removeCar(){this.car = null;}}
spring的配置文件
<bean id="sessionFactory"          ref="dataSource" />           <property name="annotatedClasses">               <list>                   <value>com.huitu.khms.pojo.Car</value>                <value>com.huitu.khms.pojo.License</value>               </list>           </property> 


双向的就可以级联了:
Car car = new Car();car.setCarName("宾利");License license = new License();license.setLicenseColor("白色");license.setLicenseNumber("666666");car.addLicense(license);//注意是addLicense 而不是setLicensecas.saveCar(car);

热点排行