Java 使用Spring Jpa的服务的Insert语句
我正在做一个Restful的服务项目,我试图通过服务持久化一个实体,但我不知道如何编写引用另一个对象的参数。。。这是我的一些类代码 域类Java 使用Spring Jpa的服务的Insert语句,java,spring,hibernate,jpa,spring-data,Java,Spring,Hibernate,Jpa,Spring Data,我正在做一个Restful的服务项目,我试图通过服务持久化一个实体,但我不知道如何编写引用另一个对象的参数。。。这是我的一些类代码 域类 @Component @Entity public class Atleta extends Persona implements java.io.Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy
@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
}
Dao接口
public interface DaoAtletaI extends JpaRepository<Atleta, Integer> {
}
如何编写引用对象的参数
有人能帮我吗?您只能运行:
这是因为Hibernate只支持这些DML风格的批处理操作
对于插入,必须使用EntityManager持久化和合并以及自定义存储库方法
引用实体时需要使用实体ID。REST服务必须将skillId作为参数来创建Atleta实体
Skill skill = iAtleta.findOne(skillId);
Atleta atl = iAtleta.saveAndFlush(new Atleta(skill , result);
为什么需要自定义方法呢?JpaRepository已经有了持久化实体的方法!请检查编辑。Vlad Mihalcea谢谢你的回答,你是对的!请检查编辑
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;
}
}
@Modifying
@Transactional
@Query("delete from User u where u.active = false")
void deleteInactiveUsers();
Skill skill = iAtleta.findOne(skillId);
Atleta atl = iAtleta.saveAndFlush(new Atleta(skill , result);