spring jpa使用联合主键
2017-01-24 16:40
423 查看
@Test
public void testAirlineRepository()
{
System.out.println(airlineRepository);
Airline al = new Airline();
al.setId(new AirlinePK("aa", "bb"));
al.setName("l2");
airlineRepository.save(al);
System.out.println(airlineRepository.findAll());
}
--------------------------------------------------------------------------------------------------------------------------------------------
/**
* file peter
2017年1月24日
*/
package org.peter.cat;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
/**
*file peter
2017年1月24日
*/
@Embeddable
public class AirlinePK implements Serializable{
@Column(length=3, nullable=false)
private String startCity;
@Column(length=3, nullable=false)
private String endCity;
public AirlinePK(){}
public AirlinePK(String startCity, String endCity) {
this.startCity = startCity;
this.endCity = endCity;
}
public String getStartCity() {
return startCity;
}
public void setStartCity(String startCity) {
this.startCity = startCity;
}
public String getEndCity() {
return endCity;
}
public void setEndCity(String endCity) {
this.endCity = endCity;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((endCity == null) ? 0 : endCity.hashCode());
result = prime * result
+ ((startCity == null) ? 0 : startCity.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
AirlinePK other = (AirlinePK) obj;
if (endCity == null) {
if (other.endCity != null)
return false;
} else if (!endCity.equals(other.endCity))
return false;
if (startCity == null) {
if (other.startCity != null)
return false;
} else if (!startCity.equals(other.startCity))
return false;
return true;
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/**
* file peter
2017年1月24日
*/
package org.peter.cat;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
/**
*file peter
2017年1月24日
*/
@Entity
public class Airline {
@EmbeddedId
private AirlinePK id;
@Column(length=10, nullable=false)
private String name;
public Airline() {}
public Airline(String startCity, String endCity, String name) {
this.id = new AirlinePK(startCity, endCity);
this.name = name;
}
public AirlinePK getId() {
return id;
}
public void setId(AirlinePK id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
public void testAirlineRepository()
{
System.out.println(airlineRepository);
Airline al = new Airline();
al.setId(new AirlinePK("aa", "bb"));
al.setName("l2");
airlineRepository.save(al);
System.out.println(airlineRepository.findAll());
}
--------------------------------------------------------------------------------------------------------------------------------------------
/**
* file peter
2017年1月24日
*/
package org.peter.cat;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
/**
*file peter
2017年1月24日
*/
@Embeddable
public class AirlinePK implements Serializable{
@Column(length=3, nullable=false)
private String startCity;
@Column(length=3, nullable=false)
private String endCity;
public AirlinePK(){}
public AirlinePK(String startCity, String endCity) {
this.startCity = startCity;
this.endCity = endCity;
}
public String getStartCity() {
return startCity;
}
public void setStartCity(String startCity) {
this.startCity = startCity;
}
public String getEndCity() {
return endCity;
}
public void setEndCity(String endCity) {
this.endCity = endCity;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((endCity == null) ? 0 : endCity.hashCode());
result = prime * result
+ ((startCity == null) ? 0 : startCity.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
AirlinePK other = (AirlinePK) obj;
if (endCity == null) {
if (other.endCity != null)
return false;
} else if (!endCity.equals(other.endCity))
return false;
if (startCity == null) {
if (other.startCity != null)
return false;
} else if (!startCity.equals(other.startCity))
return false;
return true;
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/**
* file peter
2017年1月24日
*/
package org.peter.cat;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
/**
*file peter
2017年1月24日
*/
@Entity
public class Airline {
@EmbeddedId
private AirlinePK id;
@Column(length=10, nullable=false)
private String name;
public Airline() {}
public Airline(String startCity, String endCity, String name) {
this.id = new AirlinePK(startCity, endCity);
this.name = name;
}
public AirlinePK getId() {
return id;
}
public void setId(AirlinePK id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
相关文章推荐
- spring-data-jpa使用联合主键后出现operand should contain 1 column(s)
- JPA联合主键@EmbeddedId使用详解附查询例子
- 通过JPA注解映射视图的实体类 jpa 视图 无主键 @Query注解的用法(Spring Data JPA) jpa 使用sql语句
- JPA中使用联合主键产生的若干问题
- JPA联合主键的使用
- Spring Data JPA使用复合主键
- Spring Data JPA使用复合主键
- JPA联合主键的使用(@EmbeddedId+@Embeddable)
- hibernate联合主键的使用
- "联合主键"使用in和not in
- [译文]JPA的实施模式:使用UUID作为主键
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(二):进一步消除 hibernate.cfg.xml
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六)
- JPA中的多对多和联合主键映射
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(三):通过 @Autowired的使用来消除 set ,get方法。
- jpa复合主键的使用
- 关于Maven 使用Spring+Hibernate+JPA的问题
- JPACompositePK联合主键的操作
- Spring 2.5 JPA hibernate 使用方法整理(一)
- 关于JPA(Hibernate)+spring在未使用web的情况下使用懒加载,导致no sesssion or session has closed!