如何在Hibernate中的嵌入式实体上设置属性

问题描述

我有一个向其发送电子邮件和用户密码的登录URL。通常,我将一一提取参数并将其设置为我的User实体类的属性。我不打算这样做,而是想使用BeanUtils的populate方法将请求参数直接分配给属性。

我正在尝试避免执行以下操作:字符串email = request.getParameter(“ email”)

我的用户实体为:

@Entity
@Table(name = "sc_users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="user_id")
    private int id;

    @Embedded
    private Person person;

    @Column(columnDefinition = "VARCHAR(255)")
    private String image;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name="user_group_id",nullable = false,referencedColumnName = "user_group_id")
    @JsonBackReference
    private UserGroup userGroup;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public UserGroup getUserGroup() {
        return userGroup;
    }

    public void setUserGroup(UserGroup userGroup) {
        this.userGroup = userGroup;
    }
}

我有一个可嵌入的实体,

 @Embeddable
    public class Person {
    
        @NotNull
        @Column(name="firstname",columnDefinition = "VARCHAR(32)")
        private String firstName;
    
        @NotNull
        @Column(name="lastname",columnDefinition = "VARCHAR(32)")
        private String lastName;
    
        @NotNull
        @Column(nullable = false,columnDefinition = "VARCHAR(96)")
        private String email;
    
        @NotNull
        @Column(nullable = false,columnDefinition = "VARCHAR(24)")
        private String telephone;
    
        @NotNull
        @Column(nullable = false,columnDefinition = "VARCHAR(255)")
        private String password;
    
        @Column(nullable = false,columnDefinition = "TINYINT(1) DEFAULT 1")
        private boolean status;
    
        @Column(name = "date_added",updatable=false,columnDefinition = "DATETIME DEFAULT CURRENT_TIMESTAMP")
        @Temporal(value = TemporalType.TIMESTAMP)
        private Date dateAdded;
    
    // Setters and Getters ommitted for brevity
    }

我的servlet是:

public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
        // Code omitted for brevity

        User user = new User();
        BeanUtils.populate(user,request.getParameterMap());

        // Code omitted for brevity

    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...