hibernate一对多级联保存问题 20C

这是两个类
这是一端

 @Entity
public class Payroll implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column private long pid;

    @Column private long sid;
    //结账日期
    @Column private Timestamp date;
    //累结
    @Column private double totalSum;
    //结余
    @Column private double balance;
    //伙食费用
    @Column private double boardWages;
    //扣款
    @Column private double deduct;
    //欠款
    @Column private double debt;
    ///预支
    @Column private double advance;
    //薪水细则
    @OneToMany(mappedBy="payroll",cascade = CascadeType.ALL, fetch = FetchType.LAZY)  
    @Column private List<PayrollRow> payrollRow;

    public long getSid() {
        return sid;
    }
    public void setSid(int sid) {
        this.sid = sid;
    }
    public double getTotalSum() {
        return totalSum;
    }
    public void setTotalSum(double totalSum) {
        this.totalSum = totalSum;
    }
    public double getBalance() {
        return balance;
    }
    public void setBalance(double balance) {
        this.balance = balance;
    }
    public double getBoardWages() {
        return boardWages;
    }
    public void setBoardWages(double boardWages) {
        this.boardWages = boardWages;
    }
    public double getDeduct() {
        return deduct;
    }
    public void setDeduct(double deduct) {
        this.deduct = deduct;
    }
    public double getDebt() {
        return debt;
    }
    public void setDebt(double debt) {
        this.debt = debt;
    }
    public double getAdvance() {
        return advance;
    }
    public void setAdvance(double advance) {
        this.advance = advance;
    }
    public Timestamp getDate() {
        return date;
    }
    public void setDate(Timestamp date) {
        this.date = date;
    }
    public long getPid() {
        return pid;
    }
    public void setPid(long pid) {
        this.pid = pid;
    }
    public List<PayrollRow> getPayrollRow() {
        return payrollRow;
    }

    public void setPayrollRow(List<PayrollRow> payrollRow) {
        this.payrollRow = payrollRow;
    }
    public void setSid(long sid) {
        this.sid = sid;
    }

}

这是多端

 @Entity
@Table(name = "payroll_row")
public class PayrollRow implements Serializable{


    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    @Id
    @Column private long prid;
    @Column(name="style_number") private String styleNo;
    @Column private String process;
    @Column private int count;
    @Column private double cost;
    @Column private double amount;
    @ManyToOne(cascade=CascadeType.REFRESH,optional=false,fetch = FetchType.LAZY)  
    @JoinColumn(name="pid")  
    private Payroll payroll;

    public Payroll getPayroll() {
        return payroll;
    }
    public void setPayroll(Payroll payroll) {
        this.payroll = payroll;
    }
    public String getStyleNo() {
        return styleNo;
    }
    public void setStyleNo(String styleNo) {
        this.styleNo = styleNo;
    }
    public String getProcess() {
        return process;
    }
    public void setProcess(String process) {
        this.process = process;
    }
    public int getCount() {
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
    public double getCost() {
        return cost;
    }
    public void setCost(double cost) {
        this.cost = cost;
    }
    public double getAmount() {
        return amount;
    }
    public void setAmount(double amount) {
        this.amount = amount;
    }
    public long getPrid() {
        return prid;
    }
    public void setPrid(long prid) {
        this.prid = prid;
    }



}

一开始将PayrollRow的list赋值给Payroll一端只保存一端失败
后来把PayrollRow里面的Payroll进行赋值 两者关联起来 结果还是只保存了Payroll的数据 请问何解 还有我如果想只通过一端保存来保存两个表的信息该怎么做 谢谢

按一楼修改后执行如下语句

 payroll.setPid(30);
        List<PayrollRow> pwl = payroll.getPayrollRow();
        for (int i = 0;i<pwl.size();i++) {
            pwl.get(i).setPayroll(payroll);

        }
        payroll.setPayrollRow(pwl);
        payrollService.save(payroll);

结果控制台输出的sql语句没有insert
只有这
Hibernate:
select
payrollrow_.prid,
payrollrow_.amount as amount2_5_,
payrollrow_.cost as cost3_5_,
payrollrow_.count as count4_5_,
payrollrow_.payroll_id as payroll_7_5_,
payrollrow_.process as process5_5_,
payrollrow_.style_number as style_nu6_5_
from
payrollrow payrollrow_
where
payrollrow_.prid=?

2个回答

Payroll p=new Payroll ();

p.setSid(xxx);

.

.

.



List pw=p.getPayrollRow();

pw.setCount(xxx);

.

.

.

p.setPayrollRow(pw);

            最后再把Payroll提交保存。


最后把 @ManyToOne(cascade=CascadeType.REFRESH,optional=false,fetch = FetchType.LAZY)

            改成   @ManyToOne(cascade=CascadeType.ALL,optional=false,fetch = FetchType.LAZY)

你好!
失败的最好把信息贴出来,因为不知道是不是你配置问题!
其次就是cascade类型 eg.

@OneToMany(mappedBy="group",
       cascade={CascadeType.ALL},
        fetch=FetchType.EAGER
         )      
cascade 的注解作用是:group对象的增删改关联到user对象 
fetch是读取查询关联

fetch和lazy是用来定义级联查询的方式
cascade和inverse是用来管理级联插入和修改

CascadeType取值
ALL              Cascade all operations所有情况
MERGE        Cascade merge operation合并(merge=save+update)
PERSIST       Cascade persist operation存储 persist()
REFRESH     Cascade refresh operation刷新
REMOVE     Cascade remove operation删除
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
hibernate 一对多级联保存问题

hibernate 一对多级联保存时,保存完一方和多方的对象后,怎又去更新多方的对象,为何?不明白,请教下 [b]问题补充:[/b] 是级联保存的,hibernate会先保存一方对象,再保存多方对象,再又去更新多方的所有对象,我想知道Hibernate这样做的用意何在?

hibernate一对多级联保存更新出问题,但可以级联删除

hibernate级联删除可以,但是级联保存和更新都不行,是配错了什么吗, @ManyToOne @JoinColumn(name = "customerId") @Cascade({ CascadeType.ALL }) @OneToMany(fetch = FetchType.EAGER) @JoinColumn(name = "customerId") @Cascade({ CascadeType.ALL })

hibernate一对多级联保存机制是什么

Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Order order = new Order(); order.setOrderName("订单2"); Ticket ticket = new Ticket("优惠券1",order); Ticket ticket1 = new Ticket("优惠券2",order); order.getTickets().add(ticket); order.getTickets().add(ticket1); session.save(order); transaction.commit(); session.close(); sessionFactory.close(); ``` 我明明只执行了订单order的save操作,其中一个order对应多个ticket优惠券,为什么输出的sql中 是执行了对应的三个insert语句后,又执行了两次ticket优惠券的update?这里的update语句是干啥的,一对多级联保存机制是什么 ``` 这是打印的sql: Hibernate: insert into bc_order (orderName) values (?) Hibernate: insert into bc_ticket (ticketName, orderId) values (?, ?) Hibernate: insert into bc_ticket (ticketName, orderId) values (?, ?) Hibernate: update bc_ticket set orderId=?, p_index=? where ticketId=? Hibernate: update bc_ticket set orderId=?, p_index=? where ticketId=?

hibernate注解多对多级联保存怎么解

@ManyToMany(mappedBy="sysUsers",cascade={CascadeType.PERSIST,CascadeType.MERGE}) private Set<SysDept> sysDept = new HashSet<SysDept>(0); //部门 @ManyToMany( cascade={CascadeType.PERSIST,CascadeType.MERGE},fetch=FetchType.EAGER) @JoinTable(name="sys_user_depart" ,joinColumns={@JoinColumn(name="departId")},inverseJoinColumns={@JoinColumn(name="userId")}) @OrderBy("id ASC") private Set<SysUsers> sysUsers = new HashSet<SysUsers>(0); 有一张中间表 为什么不能级联保存

求hibernate 一对多级联删除问题,望赐教

DUser表为1,DCompany 为多,DCompany 中的@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)不能删除,应为需要保存DCompany 时,同时也级联保存DUser信息,现在的问题的,我想删除DUser,可以报错 deleted object would be re-saved by cascade (remove deleted object from,删除失败,该如何处理呢,谢谢了,还有一个问题就是一个网友告诉我一对多一般都是set,即如下 # /** # * 用户信息 # */ # @OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY) # @JoinColumn(name = "comId") # private Set<DUser> users = new HashSet<DUser>(); 我用的是list,请问有什么说道吗,谢谢 删除代码为: [code="java"] @Test public void del() { DUser user = userService.findById("4028805527c3648d0127c36490560002"); System.out.println(user.getUserName()); userService.remove(user); } [/code] [code="java"] public class DUser extends BaseEntity { /** * */ private static final long serialVersionUID = -7733922431721279323L; /** * 用户标识 */ @Id @GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "uuid") private String userId; /** * 姓名 */ private String userName; /** * 所属公司信息 */ @ManyToOne (cascade = CascadeType.ALL) @JoinColumn(name = "comId") private DCompany company; /** * 性别标识M.男F.女 */ private String userSex; /** * 密码 */ private String userPass; /** * Email */ private String userEmail; /** * 电话 */ private String userTel; /** * qq */ private String userQq; /** * 是否冻结 0冻结 1正常 */ private Integer userEnable; /** * 创建时间 */ private Timestamp userCreateDate; [/code] [code="java"]public class DCompany extends BaseEntity { /** * */ private static final long serialVersionUID = 2472916124848152035L; /** * 公司标识 */ @Id @GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "uuid") private String comId; /** * 公司名称 */ private String comName; /** * 用户信息 */ @OneToMany(mappedBy = "company", cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "comId") private List<DUser> users; /** * 商品信息 */ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "comId") private List<DGoods> goods; /** * 公司地址 */ private String comAddress; /** * 公司经营类别 */ private String comType; /** * 公司简介 */ private String comIntro; /** * 公司电话 */ private String comTel; /** * 增加时间 */ private String comCreateDate;[/code] 我现在这么弄的 DUser user = userService.findById("4028805527c3648d0127c36490560002"); user.setCompany(null); userService.remove(user); 可以删除了,不是是不是最理想的状态,另外在问下 删除user信息的时候是先根据id查出DUser对象,然后在删除DUser对象 这样在数据库中就导致了生成两条sql语句 1.select * from user where id ... 2.delete from user where id .... 这样会不会影响效率呢,如果直接用hql删除会不会更好些 另外 DUser user = userService.findById("4028805527c3648d0127c36490560002"); findById的时候是用load好呢还是get好呢,谢谢了,在次感谢

Hibernate一对多双向关联,如何才能级联时保存而不更新?

<p>我是一个菜鸟,我在学习Hibernate时遇到一个问题: <br />比如两个类Class(教室),Student(学生)是一对多的关系。并且双向关联,而在Classes的hbm映射中包含Student的set中有属性inverse=true和cascade=all。如果Class中有一个属性需要更新,然后调用了session.update(class);的方法进行更新。Class的那个属性的确是更新了,但是同样也把Class关联的所有的Student更新了一次,比如Class中有60个Student就多更新了60次。但是其实Student中并没有属性改动的。那多发出了这么多更新的SQL语句,肯定要影响性能,我想问问这应该怎么办呀。怎么才能在更新Class时不级联更新Student呢?Classes必须要级联保存Student,但是不需要更新,应该怎么做啊? <br /></p> <p> </p><br /><strong>问题补充:</strong><br />cascade没有save的属性吧

hibernate一对多双向级联问题,删除数据问题

有三个类 班级 classes 小组 group 学生 student 班级和小组是一对多双向级联 小组和学生是一对多双向年级联 在hibernate做删除小组操作时,会把不相关的班级信息全部删掉,还会报错 Could not execute JDBC batch update 感觉应该是注解写的有问题 配置如下 classes{ List<group> list; @OneToMany( cascade = CascadeType.ALL, fetch = FetchType.LAZY) public List<group> getList() { return symbols; } public void setSymbols(List<group> list) { this.list = list; } } group{ private classes cl; private List<student> list; @OneToMany( cascade = CascadeType.ALL, fetch = FetchType.LAZY) public List<student> getList() { return symbols; } public void setSymbols(List<student> list) { this.list = list; } @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) public classes getCl() { return cl; } public void setClasses(classes cl) { this.cl = cl; } } student{ private group gp; @ManyToOne( cascade = CascadeType.ALL, fetch = FetchType.LAZY) public group getGp() { return gp; } public void setGp(group gb) { this.gp = gp; } }

JPA 一对多级联更新时,不能级联删除.

级联新增,删除都ok; 级联更新时,修改从表内容的update,新增也ok,就是删除不ok. 以下贴出代码部分,望大家能够指点. [code] public class Account implements java.io.Serializable { private String id; private String name; private String enabled; private Set<Acct2group> acct2groups = new HashSet<Acct2group>(0); @OneToMany(cascade = CascadeType.ALL, mappedBy = "account") public Set<Acct2group> getAcct2groups() { return this.acct2groups; } [code] 将Account类查出后, [code] Account account = dao.findById(1); Set set = account.getAcct2groups();//此时set结果集为4 set.clear(); em.merge(account); [code] 事务是spring控管的,做别的持久层动作都没问题. 就是不能将remove掉的4个Acct2group对象,重DB中删除. 将set.clear换成set.iterator().hasNext()迭代remove也不可以. 大家伙帮忙看看啊. [b]问题补充:[/b] kamhung 你好, 我用的是hibernate,org.hibernate.annotations.CascadeType没有DELETE_OPTION这个属性啊.只有DELETE和DELETE_ORPHAN.我两个都试了一下,都没有达到删除孤子的效果啊,还望再次帮助.

JPA,hibernate基于主键的一对一级联删除

我希望删除user的时候,把cmscompany给级联删除掉。以下是我的代码,两实体是基于主键的一对一关系,级联删除一直删除不了,找了 很多资料,都没办法。求大神们帮帮忙 ``` //User实体 import java.io.Serializable; 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.OneToOne; import javax.persistence.Table; @Entity @Table(name="user") public class User implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Integer id; private String name; private CmsUserCompany cmsUserCompany; @Id @GeneratedValue(strategy=GenerationType.AUTO) public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToOne(fetch = FetchType.LAZY, cascade = { CascadeType.ALL },mappedBy="user") public CmsUserCompany getCmsUserCompany() { return cmsUserCompany; } public void setCmsUserCompany(CmsUserCompany cmsUserCompany) { this.cmsUserCompany = cmsUserCompany; } } ``` ``` import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.MapsId; import javax.persistence.OneToOne; import javax.persistence.Table; @Entity @Table(name="CmsUserCompany") public class CmsUserCompany implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Integer id; private String name; private User user; @Id public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column public String getName() { return name; } public void setName(String name) { this.name = name; } @MapsId @OneToOne @JoinColumn(name="userid") public User getUser() { return user; } public void setUser(User user) { this.user = user; } } ```

如果阻止Hibernate自动保存已经被修改的实体

用的是ssh2架构。 由于采用了是struts2的ModelDriven, Preparable两种方式 如果entity的赋值时自动完成的。 比如要修改一个用户 页面中的form表单值传递到后台之后会自动个user对象,user对象是从hibernate中获得。 然后才是调用到我的action方法。 如果我在这时将user对象直接保存,则整过过程没有问题 问题出现在,如果我要在我的action代码里判断数据是否合法,这时可能需要再次查询数据库, 问题就出来了,hibernate会先自动将user对象保存到数据库中,是这实际并不是我想要的效果。 我希望是我调用save方法之后才会保存到数据库,而不是通过自动保存的方式。 有什么方法来解决这个问题吗?

hibernate save 保存的问题

点击保存后会出现org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 这么解决啊

hibernate 多对多 级联删除 注解

有两个类:Survey和Questions,问卷类和题目类,它们是多对多的关系,即:一张试卷可以有多个题目,一个题目可以属于多个试卷,我用两个一对多,数据库用中间表来实现,并有第三个类SurveyQuestions. surveuy类如下: [code="java"]//问卷实体:包括各种属性 @Entity @Table(name="_survey") public class Survey { private int id;// 问卷ID private String name;// 问卷标题 private String des;// 问卷描述或者备注 private boolean state;// 状态:是否开放 private SurveyType surveyType;// 问卷类型 private int count;// 问卷数量限制 private Date createTime;// 问卷创建时间 private Date publishTime;// 问卷发布时间 private Date deadline;// 问卷截止提交日期 private String password;// 问卷访问密码 private boolean grade;//是否是打分问卷 @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDes() { return des; } public void setDes(String des) { this.des = des; } public boolean isState() { return state; } public void setState(boolean state) { this.state = state; } @ManyToOne @JoinColumn(name = "type_id") public SurveyType getSurveyType() { return surveyType; } public void setSurveyType(SurveyType surveyType) { this.surveyType = surveyType; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getPublishTime() { return publishTime; } public void setPublishTime(Date publishTime) { this.publishTime = publishTime; } public Date getDeadline() { return deadline; } public void setDeadline(Date deadline) { this.deadline = deadline; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public boolean isGrade() { return grade; } public void setGrade(boolean grade) { this.grade = grade; }[/code] questions类 [code="java"]<span></span> @Entity @Table(name="_questions") public class Questions { private int id;// 问题主键ID private QuestionType questionType;// 问题类型 private String head;// 问题题目 private String body;// 问题主体 private String answer;// 预留字段,如果是网上答卷,则是答案 private String remarks;// 预留字段,备注 private int number;// 选项个数 @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getHead() { return head; } public void setHead(String head) { this.head = head; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getAnswer() { return answer; } public void setAnswer(String answer) { this.answer = answer; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks; } @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "type_id") public QuestionType getQuestionType() { return questionType; } public void setQuestionType(QuestionType questionType) { this.questionType = questionType; } @Column(nullable = true) public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } }[/code] surveyQuestion类 [code="java"]package com.questionnaire.model; import java.util.Date; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name = "_surveyquestion") public class SurveyQuestion { private int id;// 问卷题库关联表ID,主键 private Survey survey;// 对应问卷ID,外键 private Questions questions;// 对应题目ID,外键 private int number;// 题号,即该题目在本问卷的题号 @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } this.userIp = userIp; public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "survey_id") public Survey getSurvey() { return survey; } public void setSurvey(Survey survey) { this.survey = survey; } @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "questions_id") public Questions getQuestions() { return questions; } public void setQuestions(Questions questions) { this.questions = questions; } }[/code] 我想实现删除题目时删除_questions表里的数据,同时删除_surveyQuestion表里的数据。当然survey同样?怎样实现呢?

hibernate保存数据报错

org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into ORC_T_BUSINESS_TRACK (BUSI_NUM, BUSI_TYPE, CREATE_DATE, CREATE_USER_NAME, CREATE_USER_NUM, REMARK, ID) values (?, ?, ?, ?, ?, ?, ?)]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:643) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:104) at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:516) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:394) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) at com.bsteel.shdc.service.OrcTBusinessTrackServiceImpl$$EnhancerByCGLIB$$416c9ca9.saveOrcTBusinessTrack(<generated>) at com.bsteel.shdc.bankservice.finance.redeem.controller.AuditController.signaTure1(AuditController.java:642) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221) at com.bsteel.shdc.manager.permission.filter.AuthFilter.doFilter(AuthFilter.java:101) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:262) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:178) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137) at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:76) at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:512) ... 47 more Caused by: java.sql.BatchUpdateException: ORA-01401: inserted value too large for column at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:345) at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10844) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268) ... 56 more [color=red][/color]

Hibernate annotation配置下级联保存问题

现在有两个类, B为多对一A类 B类中的字段关联配置为 @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="f_a_id")//这个就是A的主键id public A getA(){ return a; } 现在在保存B的时候级联保存了关联的A 我不想存在这样的级联保存关系 请问如何解决?

hibernate保存子类对象

将子类对象强制转换为父类属性,保存这个对象时,调用的是父类的hibernate配置文件还是子类的配置文件

hibernate 级联保存明细时,外键没有被赋值

hibernate jpa 配置model,一对多的关系,保存主表时级联保存子表,子表中的主表外键为空。难道要先保存主表,然后手动去赋子表的外键?这还叫级联保存吗。求解!!! 例如: [code="java"] public class Order extends AbstractNsSimpleModel { private static final long serialVersionUID = -3227571634593243399L; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "order", orphanRemoval = true) private Set<OrderItem> orderItems = new HashSet<OrderItem>(); public Set<OrderItem> getOrderItems() { return orderItems; } public void setOrderItems(Set<OrderItem> orderItems) { this.orderItems = orderItems; } } [/code] [code="java"] public class OrderItem extends AbstractNsSimpleModel { private static final long serialVersionUID = -7120458190166247286L; @Column(name = "ORDER_ID", insertable = false, updatable = false, nullable = false) private Long orderId; @ManyToOne(fetch = FetchType.EAGER, optional = false) @JoinColumn(name = "ORDER_ID", referencedColumnName = "ID") private Order order; public Long getOrderId() { return orderId; } public void setOrderId(Long orderId) { this.orderId = orderId; } public Order getOrder() { return order; } public void setOrder(Order order) { this.order = order; } } [/code] 保存order时,级联保存orderItem,orderItem是被保存了,但是外键orderId为null。

hibernate保存实体,id如何填写

hibernate保存id自动增长的实体类,保存到Oracle,实体类中,字段id怎么赋值

hibernate+struts2关于页面中同个对象但是多组数据如何保存到数据库的问题

我想实现下面图片中的页面添加后,然后进行数据的保存。但是页面中是同一个对象,但是有多组数据,也就是可能页面上元素name一样,改如何保存呀。或者提供别的办法 ![图片说明](https://img-ask.csdn.net/upload/201712/21/1513869418_253015.png) ![图片说明](https://img-ask.csdn.net/upload/201712/21/1513869438_234902.png) 上面图一中,如何实现那些输入数据的保存,前辈指点下,感谢了!。

Hibernate多对一级联问题

有A、B、C、D四张表,一个附件表Z;其中A、B、C、D表中每条记录都有可能有多个附件,这种情况下,Z表中的外键该怎么建,是建1个外键还是4个外键,利用hibernate级联

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐