mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-11 01:38:07 +00:00
#1806 - SQLException:Data conversion error converting "c5866ffb-2e1c-457e-bdad-61ba4466f86e" [22018-197] Bind values:[1, ] Query was:
This commit is contained in:
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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user