我在Restful的服务项目上工作,我试图通过服务坚持一个实体,但我不知道如何编写引用另一个对象的参数......这是我班级的一些代码。
域类
@Component
@Entity
public class Atleta extends Persona implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private Skill skill
private Result result
}
@Entity
public class Skill implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private string description
public Skill() {
}
public Skill(Atleta atleta, String description) {
super();
this.atleta = atleta;
this.description = description;
}
//..Getters and Setters
Dao界面
public interface DaoAtletaI extends JpaRepository<Atleta, Integer> {
}
服务
@
Controller
@RequestMapping(value="/equipos")
public class ServicieAtleta {
@Autowired
private DaoAtletaI iAtleta;
@RequestMapping(value="/insert")
public @ResponseBody Atleta insertrAtleta (@RequestParam(value="skill", required= true ) ??? ????,
@RequestParam(value="result", required= true ) ??? ???
)
{
Atleta atl = iAtleta.saveAndFlush(new Atleta(???? , ????);
return atl;
}
}
如何编写引用对象的参数?
有人可以帮我这个吗?
答案 0 :(得分:2)
您只能运行update and delete modifying queries:
@Modifying
@Transactional
@Query("delete from User u where u.active = false")
void deleteInactiveUsers();
那是因为Hibernate只支持这些DML样式的批处理操作。
对于插入,您必须使用EntityManager persist and merge和自定义Repository方法。
引用实体时需要使用实体ID。 REST服务必须将skillId作为参数来创建Atelta实体。
Skill skill = iAtleta.findOne(skillId);
Atleta atl = iAtleta.saveAndFlush(new Atleta(skill , result);