我正在为一个旧应用程序开发restapi。
当我启动服务并开始使用它时,我有一个例外:
java.lang.illegalargumentexception:Persistentity必须具有identifier属性!
实际上,我的对象上没有id字段,而是它的父对象上的id字段。
@Entity
public class Object extends AbstractObject {
...
}
@MappedSuperclass
@Access(AccessType.PROPERTY)
public abstract class AbstractObject {
protected ObjectProperty<Long> id = new SerializableSimpleObjectProperty<>();
public classAbstractObject () {
}
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "idgen")
public Long getId() {
return id!=null?id.get():null;
}
public ObjectProperty<Long> idProperty() {
return id;
}
public void setId(Long id) {
this.id.set(id);
}
... }
这是我的控制器:
@RestController
@RequestMapping("/object")
public class ObjectController {
@Autowired
private ObjectRepository objectRepository;
@GetMapping
public Object getObjects() {
return this.objectRepository.findAll();
}
@RequestMapping(method = RequestMethod.GET, path="/getByField", params = {"field"})
public Object getByField(@QueryParam("field") String field) {
return this.objectRepository.findByField(field);
}
我错过什么了吗?
谢谢你的帮助!
暂无答案!
目前还没有任何答案,快来回答吧!