public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "seqUser", sequenceName = "seqUser")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqUser")
private Integer id;
private String email;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<UserProfile> userProfiles = new ArrayList<UserProfile>();
}
和
public class Profile implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="seqProfile", sequenceName ="seqProfile")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seqProfile")
private Integer id;
private String codeProfile;
private String libelleProfile;
@OneToMany(mappedBy="profile", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JsonIgnore
private List<UserProfile> userProfiles = new ArrayList<UserProfile>();
}
和
public class UserProfile implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "seqUserProfile", sequenceName = "seqUserProfile")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqUserProfile")
private Integer id;
@ManyToOne
@JoinColumn(name = "idUser")
@JsonIgnore
private User user;
@ManyToOne
@JoinColumn(name = "idProfile")
private Profile profile;
}
我的存储库:
public interface IUserRepository extends JpaRepository<User, Integer>{
User findByEmail(String email);
}
@Service
public class UserServiceImpl implements IUserService{
@Autowired
private IUserRepository userRepository;
public User getUserByEmail(String email) {
return userRepository.findByEmail(email);
}
public void updateUser(User user) {
userRepository.save(user);
}
}
@RestController
public class UserController {
@Autowired
private IUserService userService;
@PutMapping(value="/user/{id}", consumes=MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> updateUser(
@PathVariable(value="id", required = true) Integer id,
@RequestBody User user) {
userService.updateUser(user);
return new ResponseEntity<User>(HttpStatus.NO_CONTENT);
}
}
{
"id": 1,
"email": "email",
"userProfiles": [
{
"profile": {
"id": 1,
"codeProfile": "ADMIN",
"libelleProfile": "Administrateur",
}
},
{
"profile": {
"id": 2,
"codeProfile": "PROFILE2",
"libelleProfile": "Profile 2",
}
}
]
}
你用的是什么数据库?这个数据库支持序列吗?
但除此之外,@SequenceGenerator中缺少sequenceName属性:
@Id
@SequenceGenerator(name = "seq_user", sequenceName = "seq_user")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_user")
private Integer id;
此sequenceName必须是数据库中序列的名称。
@Service
public class UserServiceImpl implements IUserService{
@Autowired
private IUserRepository userRepository;
public User getUserByEmail(String email) {
return userRepository.findByEmail(email);
}
public void updateUser(User user) {
for (UserProfile profile : user.getUserProfiles()) {
profile.setUser(user);
}
userRepository.save(user);
}
}
我想知道ehcache是否有办法检测数据库更新/插入(spring/java,hibernate web应用程序),并使用数据库中的当前(最新)数据刷新其缓存。如果没有,检测数据库更新的最佳方法是什么,以保持与缓存和数据库之间的数据同步?
概述 使用update()方法更新文档。这个方法接收以下参数: 一个方档匹配的过滤器,用于过滤要更新的文档 一个用来执行修改操作的更新文档 一个可选的参数 指定过滤器和指定查询的时候是一样的。update()方法默认只更新单个文档,使用multi可选参数指定更新所有匹配的文档。 不能更新文档的_id字段。 更新指定字段 要改变某个字段的值,MongoDB提供了更新操作,比如$set用来修改值。如果
更新数据使用Update方法,Update方法的第一个参数为需要更新的内容,可以为一个结构体指针或者一个Map[string]interface{}类型。当传入的为结构体指针时,只有非空和0的field才会被作为更新的字段。当传入的为Map类型时,key为数据库Column的名字,value为要更新的内容。 Update方法将返回两个参数,第一个为 更新的记录数,需要注意的是 SQLITE 数据库
查找并更新 在取出数据后,更改字段内容后更新数据。 $user = UserModel::get(1); $user->user_nickname = '老猫'; $user->user_email = 'genmaowan@163.com'; $user->save(); 直接更新数据 也可以直接带更新条件来更新数据 $user = new UserMode
更新数据表中的数据 Db::name('user') ->where('id', 1) ->update(['user_nickname' => '老猫是家里最懒的猫']); 如果数据中包含主键,可以直接使用: Db::name('user') ->update(['user_nickname' => '老猫是家里最懒的猫', 'id' => 1]); update 方
查找并更新 在取出数据后,更改字段内容后更新数据。 $user = UserModel::find(1); $user->user_nickname = '老猫'; $user->user_email = 'genmaowan@163.com'; $user->save(); 批量更新数据 可以使用saveAll方法批量更新数据,例如: $user = ne
更新数据表中的数据 数据库操作使用 Db类封装方法,请事先在引入 Db类 use think\facade\Db; Db::name('user') ->where('id', 1) ->update(['user_nickname' => '老猫是家里最懒的猫']); 如果数据中包含主键,可以直接使用: Db::name('user') ->update(['user
更新某一条记录 方法原型 : public function update($data, $id); 参数名称 参数类型 参数说明 $data array 要更新的数据 $id int OR string 要更新数据的主键 return bool 成功返回true,失败返回false 栗子 $data = array( 'name' => 'xiaoming', 'age' =>