一个表JPA的多个类

时间:2015-12-21 15:07:27

标签: spring jpa spring-data spring-data-jpa

是否可以根据字段的值加载不同的类?对于这些类中的每一个,数据库中都会有相应的行,并且可以通过“type”字段来识别。他们都将共享相同的界面(申请)。

1 个答案:

答案 0 :(得分:2)

我认为你可以很容易地用JPA实现这个目标。假设你有一个"位置"表,您可以为不同类型的位置(例如StoreLocation和CustomerLocation)设置不同的行。然后我们可以在下面的JPA实体中对此进行建模。

$string = "¯\\\_(ツ)\_/¯";
$result = preg_replace('/(?<!\\\\)_/', ' ', $string);
$result = preg_replace('/\\\\(\\\\|_)/', '$1', $result);
echo $result;
// => Actual underscore looks like _

然后我们可以有其他更具体的表

@Entity
@DiscriminatorColumn(name = "name of column you need to filter with")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class LocationEntity {

}

和另一个

@Entity
@DiscriminatorValue("STORE") // set the value of the column for store location rows
public class StoreLocationEntity extends LocationEntity {

}

希望这个例子可以帮助你开始。