你慧快乐 2015-09-01 05:32 采纳率: 0%
浏览 3273

Hibernate通过@DynamicInsert注解实现动态插入不生效

插入和更新,对于空字段,生成的sql不想包含改字段,查了资料说使用这个的,但是,我的却没效果,和没使用是一样的,部分代码:
import java.util.Date;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

/**

  • 系统用户表 添加动态插入和动态更新
    */
    @Entity
    @Table(name = "user", catalog = "showlove")
    @DynamicInsert(true)
    @DynamicUpdate(true)
    public class User extends BaseModel {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "userId", nullable = false)
    private Integer userId;

    /**

    • 角色Id,级联更新、刷新,懒加载 */ @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.REFRESH,CascadeType.MERGE }) @JoinTable(name = "users_roles", joinColumns = @JoinColumn(name = "userId"), inverseJoinColumns = @JoinColumn(name = "roleId")) private Set roles;

    @Column(name = "username", length = 18, nullable = false)
    private String userName;

    @Column(name = "password", length = 18, nullable = false)
    private String password;

    @Column(name = "sex", length = 4, nullable = true)
    private String sex;

    @Column(name = "nickname", length = 16, nullable = true)
    ……
    测试代码:
    @Test
    public void testUpdate(){
    User user=new User();
    user.setUserId(24);
    // Role role=new Role();
    // role.setRoleId(1);
    user.setActivated(1);
    userService.update(user);
    }
    生成的sql:
    update
    showlove.user
    set
    activated=?,
    age=?,
    createDate=?,
    email=?,
    nickname=?,
    password=?,
    phone=?,
    sex=?,
    username=?
    where
    userId=?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 易语言把MYSQL数据库中的数据添加至组合框
    • ¥20 求数据集和代码#有偿答复
    • ¥15 关于下拉菜单选项关联的问题
    • ¥20 java-OJ-健康体检
    • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
    • ¥15 使用phpstudy在云服务器上搭建个人网站
    • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况