Art*_*sov 4 jpa spring-data spring-data-jpa
实体是Tile,它在地图上用它的坐标唯一标识:
import org.springframework.data.domain.Persistable;
@Entity
class Tile implements Persistable<Tile.Coordinates> {
@Embeddable
public static class Coordinates implements Serializable {
long x;
long y;
public Coordinates(x,y){this.x=x; this.y=y;}
}
@EmbeddedId Coordinates coordinates;
private Tile(){}
public Tile(long x,long y) {this.coordinates=new Coordinates(x,y);}
@Override
public boolean isNew(){
// what is preferred implementation?
}
// other code
}
Run Code Online (Sandbox Code Playgroud)
平铺坐标是预定义的,因为没有坐标的平铺是无意义的.
Tile tile=new Tile(x,y);
Run Code Online (Sandbox Code Playgroud)
这取决于您的属性具有哪种ID.
首先,您需要将注释@Transient放在isNew()方法上.
如果你是一个Long(或任何其他对象),你可以检查是否id == null.如果你的id是long(或任何其他原语),你需要检查是否id == 0.
在您发布的实体中有一个嵌入式ID,并且不执行if embedded == null,因为JPA将检查属性.
| 归档时间: |
|
| 查看次数: |
5752 次 |
| 最近记录: |