외국인이 포함 된 lawyer_cscd
이라는 추가 테이블을 하나 생성 한 변호사, 국가,시, 구 및 지구 표가 있습니다. 위에서 언급 한 테이블 이름의 주요 관계.SQL 경고 코드 : 1364, SQLState : HY000 'district_code'필드에 기본값이 없습니다.
실제로 국가시와 구는 미리 채워진 데이터가 있습니다.이 데이터를 가져 와서 변호사와 연결하면됩니다. 나는 lawyer_cscd라는 추가 테이블을 만들었습니다.이 테이블은 모든 사람과 외래 키 관계를 가질 것입니다 5 개 개의 테이블, 내가 오류 아래
Field 'district_code' doesn't have a default value
있어 변호사 테이블에 데이터를 삽입하려고
내 수업
@Entity
@Table(name = "lawyer")
public class Lawyer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "lawyer_batch_no")
private int lawyerbatchNo;
@Column(name = "first_name")
@NotEmpty
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "date_of_birth")
private Date dateOfBirth;
@ManyToMany(fetch = FetchType.LAZY, targetEntity = Universities.class, cascade = CascadeType.ALL)
@JoinTable(name = "lawyer_universities", joinColumns = @JoinColumn(name = "lawyer_batch_no", nullable = true), inverseJoinColumns = @JoinColumn(name = "university_code", nullable = true))
private List<Universities> universities = new ArrayList<Universities>();
@OneToOne(targetEntity = LmsUser.class, cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
private LmsUser registered_User = new LmsUser();
@ManyToOne(targetEntity = Country.class, cascade = { CascadeType.ALL })
@JoinTable(name = "lawyer_cscd", joinColumns = {
@JoinColumn(name = "lawyer_batch_no", referencedColumnName = "lawyer_batch_no") }, inverseJoinColumns = {
@JoinColumn(name = "country_code", referencedColumnName = "country_code") })
private Country country;
@ManyToOne(targetEntity = State.class, cascade = { CascadeType.ALL })
@JoinTable(name = "lawyer_cscd", joinColumns = {
@JoinColumn(name = "lawyer_batch_no", referencedColumnName = "lawyer_batch_no") }, inverseJoinColumns = {
@JoinColumn(name = "state_code", referencedColumnName = "state_code") })
private State state;
@ManyToOne(targetEntity = City.class, cascade = { CascadeType.ALL })
@JoinTable(name = "lawyer_cscd", joinColumns = {
@JoinColumn(name = "lawyer_batch_no", referencedColumnName = "lawyer_batch_no") }, inverseJoinColumns = {
@JoinColumn(name = "city_code", referencedColumnName = "city_code") })
private City city;
@ManyToOne(targetEntity = District.class, cascade = { CascadeType.ALL })
@JoinTable(name = "lawyer_cscd", joinColumns = {
@JoinColumn(name = "lawyer_batch_no", referencedColumnName = "lawyer_batch_no") }, inverseJoinColumns = {
@JoinColumn(name = "district_code", referencedColumnName = "district_code") })
private District district;
setter getter....
}
,
지구 표
@Entity
@Table(name = "district")
public class District {
@Id
@Column(name = "district_code")
protected String district_code;
@Column(name = "abbreviation")
protected String abbreviation;
@Column(name = "name", nullable = false)
protected String name;
@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, targetEntity = City.class, optional = false)
@JoinColumn(name = "city")
protected City city;
@OneToMany(targetEntity = Lawyer.class, cascade = { CascadeType.ALL }, orphanRemoval = true)
@JoinTable(name = "lawyer_cscd", joinColumns = {
@JoinColumn(name = "district_code", referencedColumnName = "district_code") }, inverseJoinColumns = {
@JoinColumn(name = "lawyer_batch_no", referencedColumnName = "lawyer_batch_no") })
private Set<Lawyer> lawyers=new HashSet<Lawyer>();
}
국가와 국가에 대한 같은, 도시 우리가 포조 클래스
테스트 클래스
class Testing {
public static void main(String args[]){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("persistentContext.xml");
RegistrationDao dao = (RegistrationDao) applicationContext.getBean("registrationDaoImpl");
LmsUser lmsUser = new LmsUser();
lmsUser.setUser_id(2323l);
lmsUser.setEmail("[email protected]");
lmsUser.setLast_Login(new Date());
lmsUser.setStatus(UserStatus.active);
dao.saveUser(lmsUser);
Lawyer lawyer = new Lawyer();
lawyer.setFirstName("sofi");
lawyer.setLastName("gupta");
lawyer.setDateOfBirth(new Date());
AreaOfPractise dowry = new AreaOfPractise();
dowry.setActive(true);
dowry.setPractiseName("Murder");
AreaOfPractise murder = new AreaOfPractise();
murder.setActive(false);
murder.setPractiseName("murder");
lawyer.getAreaOfPractises().add(dowry);
lawyer.getAreaOfPractises().add(murder);
Address address = new Address();
address.setActive(true);
address.setAddressLine1("khini naka phoota kuwan");
address.setAddressLine2("Kanpur");
address.setAddressLine3("Up");
address.setCity("Uttar Pradesh");
address.setPostalCode("210001");
address.setLawyer(lawyer);
Universities universities = new Universities();
// universities.setUniversity_code("1213");
universities.setUniversityName("Uttar Pradesh Technical University");
universities.setUniversityAddress(address);
College colleges = new College();
colleges.setCollege_code("DSI");
colleges.setCollegeName("DSiTM");
colleges.setCollegeType(CollegeType.LAW);
colleges.setCollegeAddress(address);
colleges.setUniversities(universities);
universities.getColleges().add(colleges);
universities.getLawyer().add(lawyer);
lawyer.setRegistered_User(lmsUser);
lawyer.getUniversities().add(universities);
ExperienceSummary experienceSummary = new ExperienceSummary();
experienceSummary.setLawyer(lawyer);
experienceSummary.setNoOfCaseInProgress(45);
lawyer.setExperienceSummary(experienceSummary);
/*LawyerDao lawyerdao = (LawyerDao) applicationContext.getBean("lawyerDaoImpl");
lawyerdao.saveLayer(lawyer);
for (Lawyer string1 : lawyerdao.getLawyersByName("ankur", "jadiya")) {
System.out.println(string1.getLawyerbatchNo());
string1.getUniversities().size();
for (Universities string : string1.getUniversities()) {
System.out.println(string.getUniversityName());
}
}
*/
CommonDao commonDao = (CommonDao) applicationContext.getBean("commonDaoImpl");
Country country = new Country();
country.setCountry_code("IND");
country.setAbbreviation("IND");
country.setName("India");
State state = new State();
state.setState_code("UP");
state.setAbbreviation("UP");
state.setName("Uttar Pradesh");
state.setCountry(country);
City city = new City();
city.setCity_code("BNDA");
city.setCityName("Banda");
District district = new District();
district.setDistrict_code("MUA");
district.setName("MAHUA");
district.setCity(city);
city.getDistricts().add(district);
District district1 = new District();
district1.setDistrict_code("MAHOBA");
district1.setName("MAHOBA");
district1.setCity(city);
city.setState(state);
city.getDistricts().add(district1);
state.getCity().add(city);
City city1 = new City();
city1.setCity_code("CNB");
city1.setCityName("Kanpur");
city1.setState(state);
state.getCity().add(city1);
City city2 = new City();
city2.setCity_code("LKO");
city2.setCityName("Lucknow");
city2.setState(state);
state.getCity().add(city2);
country.getState().add(state);
district.getLawyers().add(lawyer);
city.getLawyers().add(lawyer);
state.getLawyers().add(lawyer);
country.getLawyers().add(lawyer);
lawyer.setCountry(country);
lawyer.setState(state);
lawyer.setCity(city);
lawyer.setDistrict(district);
commonDao.saveCountry(country);
LawyerDao clawDao = (LawyerDaoImpl) applicationContext.getBean("lawyerDaoImpl");
clawDao.saveLayer(lawyer);
}
}
당신은 널 (null)는 'district_code'값을 삽입하려고하지만이 열이 null이 아닌 것을 선언해야 또는이 값이 null이 아니도록 요구하는 제한이 있습니다 – scaisEdge
이 줄이 있으면 @scaisEdge lawyer.setDistrict (district); 나는 변호사 pozo와 district.getLawyers()에서 지구의 가치를 정하고있다. add (변호사); 두 가지 방법으로 값을 제공했지만 clawDao.saveLayer (변호사)는 여전히 왜 오류를 던지고 있는지 확신하지 못했습니다. – henrycharles
@scaisEdge 지난 4 일 동안이 작업을 시도해 본 결과 내가 실수 한 것을 이해할 수 없게되었습니다. – henrycharles