Add tests for AttributeOverride
This commit is contained in:
parent
996157fca1
commit
31913eaeea
|
@ -0,0 +1,265 @@
|
|||
/*
|
||||
* 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.orm.test.attributeoverride;
|
||||
|
||||
import javax.persistence.AttributeOverride;
|
||||
import javax.persistence.AttributeOverrides;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Embeddable;
|
||||
import javax.persistence.Embedded;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.boot.spi.MetadataImplementor;
|
||||
|
||||
import org.hibernate.testing.orm.junit.DomainModel;
|
||||
import org.hibernate.testing.orm.junit.ServiceRegistry;
|
||||
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||
import org.hibernate.test.util.SchemaUtil;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.core.Is.is;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
/**
|
||||
* @author Andrea Boriero
|
||||
*/
|
||||
@DomainModel(
|
||||
annotatedClasses = {
|
||||
AttributeOverrideTest.DomesticCustomer.class,
|
||||
AttributeOverrideTest.ForeignCustomer.class
|
||||
}
|
||||
)
|
||||
@ServiceRegistry
|
||||
@SessionFactory
|
||||
public class AttributeOverrideTest {
|
||||
|
||||
@Test
|
||||
public void testSchema(SessionFactoryScope scope) {
|
||||
MetadataImplementor metadata = scope.getMetadataImplementor();
|
||||
assertTrue( SchemaUtil.isColumnPresent( "DOMESTIC_CUSTOMER", "DC_address_street", metadata ) );
|
||||
assertTrue( SchemaUtil.isColumnPresent( "FOREIGN_CUSTOMER", "FC_address_street", metadata ) );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQuery(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
DomesticCustomer domesticCustomer = session.createQuery(
|
||||
"from DomesticCustomer c",
|
||||
DomesticCustomer.class
|
||||
).getSingleResult();
|
||||
assertThat( domesticCustomer.getName(), is( "domestic" ) );
|
||||
assertThat( domesticCustomer.getAddress().getCity(), is( "London" ) );
|
||||
|
||||
ForeignCustomer foreignCustomer = session.createQuery(
|
||||
"from ForeignCustomer c",
|
||||
ForeignCustomer.class
|
||||
).getSingleResult();
|
||||
assertThat( foreignCustomer.getName(), is( "foreign" ) );
|
||||
assertThat( foreignCustomer.getAddress().getCity(), is( "Roma" ) );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void createTestData(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
DomesticCustomer domestic = new DomesticCustomer(
|
||||
"domestic",
|
||||
"123",
|
||||
new Address( "Kennington road", "London" )
|
||||
);
|
||||
session.persist( domestic );
|
||||
ForeignCustomer foreign = new ForeignCustomer(
|
||||
"foreign",
|
||||
"987",
|
||||
new Address( "Via Milano", "Roma" )
|
||||
);
|
||||
session.persist( foreign );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void cleanupTestData(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
session.createQuery( "from DomesticCustomer", DomesticCustomer.class )
|
||||
.list()
|
||||
.forEach( cust -> session.delete( cust ) );
|
||||
session.createQuery( "from ForeignCustomer", ForeignCustomer.class )
|
||||
.list()
|
||||
.forEach( cust -> session.delete( cust ) );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Embeddable
|
||||
public static class Address {
|
||||
private String street;
|
||||
private String city;
|
||||
|
||||
public Address() {
|
||||
}
|
||||
|
||||
public Address(String street, String city) {
|
||||
this.street = street;
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public String getStreet() {
|
||||
return street;
|
||||
}
|
||||
|
||||
public void setStreet(String street) {
|
||||
this.street = street;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
}
|
||||
|
||||
@AttributeOverrides(
|
||||
value = {
|
||||
@AttributeOverride(
|
||||
name = "address.street",
|
||||
column = @Column(name = "DC_address_street")),
|
||||
}
|
||||
)
|
||||
@Entity(name = "DomesticCustomer")
|
||||
@Table(name = "DOMESTIC_CUSTOMER")
|
||||
public static class DomesticCustomer {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String taxId;
|
||||
@Embedded
|
||||
private Address address;
|
||||
|
||||
public DomesticCustomer() {
|
||||
}
|
||||
|
||||
public DomesticCustomer(
|
||||
String name,
|
||||
String taxId,
|
||||
Address address) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.taxId = taxId;
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getTaxId() {
|
||||
return taxId;
|
||||
}
|
||||
|
||||
public void setTaxId(String taxId) {
|
||||
this.taxId = taxId;
|
||||
}
|
||||
|
||||
public Address getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(Address address) {
|
||||
this.address = address;
|
||||
}
|
||||
}
|
||||
|
||||
@AttributeOverrides(
|
||||
value = {
|
||||
@AttributeOverride(
|
||||
name = "address.street",
|
||||
column = @Column(name = "FC_address_street")),
|
||||
}
|
||||
)
|
||||
@Entity(name = "ForeignCustomer")
|
||||
@Table(name = "FOREIGN_CUSTOMER")
|
||||
public static class ForeignCustomer {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String vat;
|
||||
private Address address;
|
||||
|
||||
public ForeignCustomer() {
|
||||
}
|
||||
|
||||
public ForeignCustomer(
|
||||
String name,
|
||||
String vat,
|
||||
Address address) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.vat = vat;
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getVat() {
|
||||
return vat;
|
||||
}
|
||||
|
||||
public void setVat(String vat) {
|
||||
this.vat = vat;
|
||||
}
|
||||
|
||||
public Address getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(Address address) {
|
||||
this.address = address;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,231 @@
|
|||
/*
|
||||
* 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.orm.test.attributeoverride.inheritance;
|
||||
|
||||
import javax.persistence.AttributeOverride;
|
||||
import javax.persistence.AttributeOverrides;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Embeddable;
|
||||
import javax.persistence.Embedded;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.MappedSuperclass;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.boot.spi.MetadataImplementor;
|
||||
|
||||
import org.hibernate.testing.orm.junit.DomainModel;
|
||||
import org.hibernate.testing.orm.junit.ServiceRegistry;
|
||||
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||
import org.hibernate.test.util.SchemaUtil;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.core.Is.is;
|
||||
import static org.hamcrest.core.IsNull.nullValue;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
/**
|
||||
* @author Andrea Boriero
|
||||
*/
|
||||
@DomainModel(
|
||||
annotatedClasses = {
|
||||
MappedSuperclassTest.Customer.class,
|
||||
MappedSuperclassTest.DomesticCustomer.class,
|
||||
MappedSuperclassTest.ForeignCustomer.class
|
||||
}
|
||||
)
|
||||
@ServiceRegistry
|
||||
@SessionFactory
|
||||
public class MappedSuperclassTest {
|
||||
|
||||
@Test
|
||||
public void testSchema(SessionFactoryScope scope) {
|
||||
MetadataImplementor metadata = scope.getMetadataImplementor();
|
||||
assertTrue( SchemaUtil.isColumnPresent( "DOMESTIC_CUSTOMER", "DC_address_street", metadata ) );
|
||||
assertTrue( SchemaUtil.isColumnPresent( "FOREIGN_CUSTOMER", "STREET", metadata ) );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQuery(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
DomesticCustomer domesticCustomer = session.createQuery(
|
||||
"from DomesticCustomer c",
|
||||
DomesticCustomer.class
|
||||
).getSingleResult();
|
||||
assertThat( domesticCustomer.getName(), is( "domestic" ) );
|
||||
assertThat( domesticCustomer.getAddress().getCity(), is( "London" ) );
|
||||
|
||||
ForeignCustomer foreignCustomer = session.createQuery(
|
||||
"from ForeignCustomer c",
|
||||
ForeignCustomer.class
|
||||
).getSingleResult();
|
||||
assertThat( foreignCustomer.getName(), is( "foreign" ) );
|
||||
assertThat( foreignCustomer.getAddress().getCity(), is( nullValue() ) );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void createTestData(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
Address address = new Address( "Kennington road", "London" );
|
||||
DomesticCustomer domestic = new DomesticCustomer( 1, "domestic", "123" );
|
||||
domestic.setAddress( address );
|
||||
session.persist( domestic );
|
||||
session.persist( new ForeignCustomer( 2, "foreign", "987" ) );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void cleanupTestData(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
session.createQuery( "from DomesticCustomer", DomesticCustomer.class )
|
||||
.list()
|
||||
.forEach( cust -> session.delete( cust ) );
|
||||
session.createQuery( "from ForeignCustomer", ForeignCustomer.class )
|
||||
.list()
|
||||
.forEach( cust -> session.delete( cust ) );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Embeddable
|
||||
public static class Address {
|
||||
private String street;
|
||||
private String city;
|
||||
|
||||
public Address() {
|
||||
}
|
||||
|
||||
public Address(String street, String city) {
|
||||
this.street = street;
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
@Column(name = "STREET")
|
||||
public String getStreet() {
|
||||
return street;
|
||||
}
|
||||
|
||||
public void setStreet(String street) {
|
||||
this.street = street;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@MappedSuperclass
|
||||
public static abstract class Customer {
|
||||
private Integer id;
|
||||
private String name;
|
||||
private Address address;
|
||||
|
||||
public Customer() {
|
||||
}
|
||||
|
||||
public Customer(Integer id, String name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Id
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Embedded
|
||||
public Address getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(Address address) {
|
||||
this.address = address;
|
||||
}
|
||||
}
|
||||
|
||||
@Entity(name = "DomesticCustomer")
|
||||
@AttributeOverrides(
|
||||
value = {
|
||||
@AttributeOverride(
|
||||
name = "name",
|
||||
column = @Column(name = "DC_name")),
|
||||
@AttributeOverride(
|
||||
name = "address.street",
|
||||
column = @Column(name = "DC_address_street")),
|
||||
}
|
||||
)
|
||||
@Table(name = "DOMESTIC_CUSTOMER")
|
||||
public static class DomesticCustomer extends Customer {
|
||||
private String taxId;
|
||||
|
||||
public DomesticCustomer() {
|
||||
}
|
||||
|
||||
public DomesticCustomer(Integer id, String name, String taxId) {
|
||||
super( id, name );
|
||||
this.taxId = taxId;
|
||||
}
|
||||
|
||||
|
||||
public String getTaxId() {
|
||||
return taxId;
|
||||
}
|
||||
|
||||
public void setTaxId(String taxId) {
|
||||
this.taxId = taxId;
|
||||
}
|
||||
}
|
||||
|
||||
@Entity(name = "ForeignCustomer")
|
||||
@Table(name = "FOREIGN_CUSTOMER")
|
||||
public static class ForeignCustomer extends Customer {
|
||||
private String vat;
|
||||
|
||||
public ForeignCustomer() {
|
||||
}
|
||||
|
||||
public ForeignCustomer(Integer id, String name, String vat) {
|
||||
super( id, name );
|
||||
this.vat = vat;
|
||||
}
|
||||
|
||||
public String getVat() {
|
||||
return vat;
|
||||
}
|
||||
|
||||
public void setVat(String vat) {
|
||||
this.vat = vat;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,250 @@
|
|||
/*
|
||||
* 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.orm.test.attributeoverride.inheritance;
|
||||
|
||||
import java.util.List;
|
||||
import javax.persistence.AttributeOverride;
|
||||
import javax.persistence.AttributeOverrides;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Embeddable;
|
||||
import javax.persistence.Embedded;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Inheritance;
|
||||
import javax.persistence.InheritanceType;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.hibernate.boot.spi.MetadataImplementor;
|
||||
|
||||
import org.hibernate.testing.orm.junit.DomainModel;
|
||||
import org.hibernate.testing.orm.junit.ServiceRegistry;
|
||||
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||
import org.hibernate.test.util.SchemaUtil;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.core.IsNull.nullValue;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
/**
|
||||
* @author Andrea Boriero
|
||||
*/
|
||||
@DomainModel(
|
||||
annotatedClasses = {
|
||||
TablePerClassTest.Customer.class,
|
||||
TablePerClassTest.DomesticCustomer.class,
|
||||
TablePerClassTest.ForeignCustomer.class
|
||||
}
|
||||
)
|
||||
@ServiceRegistry
|
||||
@SessionFactory
|
||||
public class TablePerClassTest {
|
||||
|
||||
@Test
|
||||
public void testSchema(SessionFactoryScope scope) {
|
||||
MetadataImplementor metadata = scope.getMetadataImplementor();
|
||||
assertTrue( SchemaUtil.isColumnPresent( "DOMESTIC_CUSTOMER", "DC_address_street", metadata ) );
|
||||
assertTrue( SchemaUtil.isColumnPresent( "FOREIGN_CUSTOMER", "STREET", metadata ) );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQuery(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
DomesticCustomer domesticCustomer = session.createQuery(
|
||||
"from DomesticCustomer c",
|
||||
DomesticCustomer.class
|
||||
).getSingleResult();
|
||||
assertThat( domesticCustomer.getName(), is( "domestic" ) );
|
||||
assertThat( domesticCustomer.getAddress().getCity(), is( "London" ) );
|
||||
|
||||
ForeignCustomer foreignCustomer = session.createQuery(
|
||||
"from ForeignCustomer c",
|
||||
ForeignCustomer.class
|
||||
).getSingleResult();
|
||||
assertThat( foreignCustomer.getName(), is( "foreign" ) );
|
||||
assertThat( foreignCustomer.getAddress().getCity(), is( nullValue() ) );
|
||||
}
|
||||
);
|
||||
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
List<Customer> customers = session.createQuery(
|
||||
"from Customer c",
|
||||
Customer.class
|
||||
).list();
|
||||
assertThat( customers.size(), is( 2 ) );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void createTestData(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
Address address = new Address(
|
||||
"Kennington road",
|
||||
"London"
|
||||
);
|
||||
DomesticCustomer domestic = new DomesticCustomer(
|
||||
1,
|
||||
"domestic",
|
||||
"123"
|
||||
);
|
||||
domestic.setAddress( address );
|
||||
session.persist( domestic );
|
||||
session.persist( new ForeignCustomer( 2, "foreign", "987" ) );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void cleanupTestData(SessionFactoryScope scope) {
|
||||
scope.inTransaction(
|
||||
session -> {
|
||||
session.createQuery( "from DomesticCustomer", DomesticCustomer.class )
|
||||
.list()
|
||||
.forEach( cust -> session.delete( cust ) );
|
||||
session.createQuery( "from ForeignCustomer", ForeignCustomer.class )
|
||||
.list()
|
||||
.forEach( cust -> session.delete( cust ) );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Embeddable
|
||||
public static class Address {
|
||||
private String street;
|
||||
private String city;
|
||||
|
||||
public Address() {
|
||||
}
|
||||
|
||||
public Address(String street, String city) {
|
||||
this.street = street;
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
@Column(name = "STREET")
|
||||
public String getStreet() {
|
||||
return street;
|
||||
}
|
||||
|
||||
public void setStreet(String street) {
|
||||
this.street = street;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
}
|
||||
|
||||
@Entity(name = "Customer")
|
||||
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
||||
public static abstract class Customer {
|
||||
private Integer id;
|
||||
private String name;
|
||||
private Address address;
|
||||
|
||||
public Customer() {
|
||||
}
|
||||
|
||||
public Customer(Integer id, String name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Id
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Embedded
|
||||
public Address getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(Address address) {
|
||||
this.address = address;
|
||||
}
|
||||
}
|
||||
|
||||
@Entity(name = "DomesticCustomer")
|
||||
@AttributeOverrides(
|
||||
value = {
|
||||
@AttributeOverride(
|
||||
name = "name",
|
||||
column = @Column(name = "DC_name")),
|
||||
@AttributeOverride(
|
||||
name = "address.street",
|
||||
column = @Column(name = "DC_address_street")),
|
||||
}
|
||||
)
|
||||
@Table(name = "DOMESTIC_CUSTOMER")
|
||||
public static class DomesticCustomer extends Customer {
|
||||
private String taxId;
|
||||
|
||||
public DomesticCustomer() {
|
||||
}
|
||||
|
||||
public DomesticCustomer(Integer id, String name, String taxId) {
|
||||
super( id, name );
|
||||
this.taxId = taxId;
|
||||
}
|
||||
|
||||
|
||||
public String getTaxId() {
|
||||
return taxId;
|
||||
}
|
||||
|
||||
public void setTaxId(String taxId) {
|
||||
this.taxId = taxId;
|
||||
}
|
||||
}
|
||||
|
||||
@Entity(name = "ForeignCustomer")
|
||||
@Table(name = "FOREIGN_CUSTOMER")
|
||||
public static class ForeignCustomer extends Customer {
|
||||
private String vat;
|
||||
|
||||
public ForeignCustomer() {
|
||||
}
|
||||
|
||||
public ForeignCustomer(Integer id, String name, String vat) {
|
||||
super( id, name );
|
||||
this.vat = vat;
|
||||
}
|
||||
|
||||
public String getVat() {
|
||||
return vat;
|
||||
}
|
||||
|
||||
public void setVat(String vat) {
|
||||
this.vat = vat;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue