我对Spring Data和Spring Repositories有疑问。 我需要从另一个不是实体的类中为CrudRepository提供一些值。例如: 我有一个班级
@Entity
class Profile {
private String id;
private String name;
private long birthDate;
private String aboutMe;
...
}
和
class MyProfile {
private String profileId;
private String accountId;
private String name;
private String aboutMe;
}
和存储库
@Transactional
@EnableTransactionManagement
@Repository
public interface ProfileRepository extends CrudRepository<Profile, String>{
@Transactional
Profile findByAccountId(String id);
void updateMyProfile(MyProfile myProfile);
}
我想使用MyProfile中提供的数据更新Profile中的某些字段。有办法做到这一点吗?
谢谢!
答案 0 :(得分:0)
您必须手动编写更新查询:
@Query("UPDATE Profile p" +
" SET " +
" p.name = ?#{#myprofile.name}, " +
" p.aboutMe = ?#{#myprofile.aboutMe}" +
" p.account.id = ?#{#myprofile.accountId}" + // I assume that account is another entity
" WHERE p.id = ?#{#myprofile.profileId}")
@Transactional
@Modifying
void updateMyProfile(@Param("myprofile") MyProfile myprofile);