HHH-13410 Adding test case
This commit is contained in:
parent
faf3928043
commit
bfef0df089
|
@ -0,0 +1,228 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
package org.hibernate.engine.spi;
|
||||||
|
|
||||||
|
import org.hibernate.cfg.Environment;
|
||||||
|
import org.hibernate.testing.TestForIssue;
|
||||||
|
import org.hibernate.testing.jta.TestingJtaBootstrap;
|
||||||
|
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author gajendra.jatav(raaz2.gajendra@gmail.com)
|
||||||
|
*/
|
||||||
|
public class BatchSortingTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addSettings(Map settings) {
|
||||||
|
settings.put( Environment.ORDER_INSERTS, "true" );
|
||||||
|
settings.put( Environment.ORDER_UPDATES, "true" );
|
||||||
|
settings.put( Environment.STATEMENT_BATCH_SIZE, "5" );
|
||||||
|
TestingJtaBootstrap.prepare( settings );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Class<?>[] getAnnotatedClasses() {
|
||||||
|
return new Class<?>[]{
|
||||||
|
GeoCountry.class, GeoDistrict.class,
|
||||||
|
GeoDistrictDetail.class, GeoNation.class
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestForIssue( jiraKey = "HHH-13410" )
|
||||||
|
public void batchInsertTest() {
|
||||||
|
|
||||||
|
doInHibernate(this::sessionFactory, session -> {
|
||||||
|
GeoCountry country = new GeoCountry();
|
||||||
|
GeoDistrict geoDistrict = new GeoDistrict();
|
||||||
|
geoDistrict.setDistrictName( "SomeDistrict" );
|
||||||
|
GeoDistrictDetail districtDetail = new GeoDistrictDetail();
|
||||||
|
geoDistrict.setGeoDistrictDetail( districtDetail );
|
||||||
|
GeoNation nation = new GeoNation();
|
||||||
|
nation.setNationName( "NationName" );
|
||||||
|
country.setCountryName( "CountryName" );
|
||||||
|
session.persist( country );
|
||||||
|
List<GeoDistrict> geoDistricts = new ArrayList<>();
|
||||||
|
geoDistrict.setCountryId( country.getId() );
|
||||||
|
geoDistricts.add( geoDistrict );
|
||||||
|
country.setDistricts( geoDistricts );
|
||||||
|
session.persist( geoDistrict );
|
||||||
|
session.persist( nation );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public static class GeoCountry {
|
||||||
|
|
||||||
|
@GeneratedValue
|
||||||
|
@Id
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@OneToMany( fetch = FetchType.LAZY)
|
||||||
|
@JoinColumn( name = "COUNTRY_ID", referencedColumnName = "ID", updatable = false, insertable = false)
|
||||||
|
private List<GeoDistrict> districts;
|
||||||
|
|
||||||
|
@OneToOne( fetch = FetchType.LAZY)
|
||||||
|
@JoinColumn( name = "NATION_ID")
|
||||||
|
private GeoNation nation;
|
||||||
|
|
||||||
|
private String countryName;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GeoDistrict> getDistricts() {
|
||||||
|
return districts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDistricts(List<GeoDistrict> districts) {
|
||||||
|
this.districts = districts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeoNation getNation() {
|
||||||
|
return nation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNation(GeoNation nation) {
|
||||||
|
this.nation = nation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCountryName() {
|
||||||
|
return countryName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountryName(String countryName) {
|
||||||
|
this.countryName = countryName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public static class GeoDistrict {
|
||||||
|
|
||||||
|
@GeneratedValue
|
||||||
|
@Id
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String districtName;
|
||||||
|
|
||||||
|
@Column( name = "COUNTRY_ID")
|
||||||
|
private Long countryId;
|
||||||
|
|
||||||
|
@OneToOne( fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
|
||||||
|
@JoinColumn( name = "DISTRICT_DTL_ID")
|
||||||
|
private GeoDistrictDetail geoDistrictDetail;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDistrictName() {
|
||||||
|
return districtName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDistrictName(String districtName) {
|
||||||
|
this.districtName = districtName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getCountryId() {
|
||||||
|
return countryId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountryId(Long countryId) {
|
||||||
|
this.countryId = countryId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeoDistrictDetail getGeoDistrictDetail() {
|
||||||
|
return geoDistrictDetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGeoDistrictDetail(GeoDistrictDetail geoDistrictDetail) {
|
||||||
|
this.geoDistrictDetail = geoDistrictDetail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public static class GeoDistrictDetail {
|
||||||
|
|
||||||
|
@GeneratedValue
|
||||||
|
@Id
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public static class GeoNation {
|
||||||
|
|
||||||
|
@GeneratedValue
|
||||||
|
@Id
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Column( name = "GOV_ID")
|
||||||
|
private Long govId;
|
||||||
|
|
||||||
|
@Column( name = "TEAM_ID")
|
||||||
|
private Long teamId;
|
||||||
|
|
||||||
|
private String nationName;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getGovId() {
|
||||||
|
return govId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGovId(Long govId) {
|
||||||
|
this.govId = govId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getTeamId() {
|
||||||
|
return teamId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTeamId(Long teamId) {
|
||||||
|
this.teamId = teamId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNationName() {
|
||||||
|
return nationName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNationName(String nationName) {
|
||||||
|
this.nationName = nationName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue