更改双字段的setter定义不会反映出来

时间:2018-04-05 12:40:58

标签: java spring oracle hibernate

我的表格结构如下:

Oracle数据库表结构

Student
{
    STUDENT_ID varchar2(50) primary key,
    NAME varchar2(50) not null,
    MARKS number(30,8) not null
}

Student.java

class Student
{
    private String studentId;
    private String name;
    private double marks;

    /** getters and setters of studentId and name are written over here **/

    public double getMarks()
    {
        return marks;
    }

    public void setMarks(double marks)
    {
        this.marks = new BigDecimal(String.valueOf(marks)).setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
    }
}

Hibernate Mapping

<class name="com.example.bo.Student" table="Student">
    <id name="studentId" column="STUDENT_ID">
        <generator class="uuid" >
            <param name="separator">-</param>
        </generator>
    </id>
    <property name="name" column="NAME" />
    <property name="marks" column="MARKS"/>
</class>
  • 上面的代码运行正常。但由于某些原因,我想删除舍入功能,只需保持如下:

    public void setMarks(double marks)
    {
        this.marks = marks;
    }
    
  • 但上述更改不起作用,之前的setter定义也会执行。

  • 我还尝试更改变量名称&#34;标记&#34;以及它的getter和setter,但仍然执行前一个setter函数。
  • 然后我使用后面的setter定义创建了一个新列,新列按预期工作,但原始列&#34;标记&#34;仍然将值舍入到小数点后6位。

0 个答案:

没有答案