#1806 - SQLException:Data conversion error converting "c5866ffb-2e1c-457e-bdad-61ba4466f86e" [22018-197] Bind values:[1, ] Query was:

This commit is contained in:
rob bygrave committed 2019-08-26 21:12:07 +12:00
1 parent 533be356f2
commit 81c2c804a6
4 files changed
+191 -1

No files matched your search

@@ -0,0 +1,85 @@
package org.tests.model.carwheeltruck;
import org.tests.model.basic.EBasic;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Version;
import java.util.List;
import static javax.persistence.CascadeType.ALL;
@Entity
public class TTruckHolder {
@Id
private long id;
@Version
private long version;
private final String name;
/**
* Inheritance but at BOTTOM layer (so no discriminator needed).
*/
@ManyToOne(optional = false)
private TTruck truck;
@ManyToOne
private EBasic basic;
@OneToMany(cascade = ALL, mappedBy = "owner")
private List<TTruckHolderItem> items;
public TTruckHolder(String name, TTruck truck) {
this.name = name;
this.truck = truck;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getVersion() {
return version;
}
public void setVersion(long version) {
this.version = version;
}
public String getName() {
return name;
}
public TTruck getTruck() {
return truck;
}
public void setTruck(TTruck truck) {
this.truck = truck;
}
public EBasic getBasic() {
return basic;
}
public void setBasic(EBasic basic) {
this.basic = basic;
}
public List<TTruckHolderItem> getItems() {
return items;
}
public void setItems(List<TTruckHolderItem> items) {
this.items = items;
}
}
@@ -0,0 +1,49 @@
package org.tests.model.carwheeltruck;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import java.util.UUID;
@Entity
public class TTruckHolderItem {
@Id
private Long id;
private final UUID someUid;
private final String foo;
@ManyToOne(optional = false)
private TTruckHolder owner;
public TTruckHolderItem(String foo) {
this.someUid = UUID.randomUUID();
this.foo = foo;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public UUID getSomeUid() {
return someUid;
}
public String getFoo() {
return foo;
}
public TTruckHolder getOwner() {
return owner;
}
public void setOwner(TTruckHolder owner) {
this.owner = owner;
}
}
@@ -0,0 +1,54 @@
package org.tests.model.carwheeltruck;
import io.ebean.BaseTestCase;
import io.ebean.DB;
import org.ebeantest.LoggedSqlCollector;
import org.junit.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class TestMTOInheritNoDiscriminator extends BaseTestCase {
@Test
public void test() {
final TTruckHolder holder = setup();
LoggedSqlCollector.start();
final TTruckHolder found = DB.find(TTruckHolder.class)
.fetch("items")
.where().idEq(holder.getId())
.findOne();
assertThat(found).isNotNull();
assertThat(found.getItems()).hasSize(2);
assertThat(found.getItems()).extracting(TTruckHolderItem::getFoo).contains("a","b");
final List<String> sql = LoggedSqlCollector.stop();
assertThat(sql).hasSize(1);
if (isH2() || isPostgres()) {
assertThat(sql.get(0)).contains(" and t2.type = 'truck' ");
}
}
private TTruckHolder setup() {
TTruck truck = new TTruck();
truck.setPlateNo("J78");
truck.setLoad(43L);
DB.save(truck);
TTruckHolder holder = new TTruckHolder("h1", truck);
holder.getItems().add(new TTruckHolderItem("a"));
holder.getItems().add(new TTruckHolderItem("b"));
DB.save(holder);
return holder;
}
}