在Rails应用程序,活动记录创建created_at和updated_at列谢宏,(它似乎也被称为“魔法列”)。
我对这个机制有一些疑问:
deleted_at)?t.publishing,将创建publish_up和publish_down列,例如?显然,我知道我可以手动添加这些列,但我想知道如何使用宏来实现它。
4. 在 Rails 上工作
在 Oracle 12 数据库中,我的列之一是用 NUMBER(10,2) 定义的。目标是存储这样的数字:12345678.12。实际上,感谢 Oracle SQL Developer,我可以存储这样的数字,因此格式是匹配的。
通过我的 Hibernate-Java 应用程序,当我更新包含以下值的实体时,它会起作用:
1.12
12.12
123.12
1234.12
12345.12
123456.12
Run Code Online (Sandbox Code Playgroud)
但通过以下内容,我收到错误
1234567.12
12345678.12
ORA-01438: value larger than specified precision allowed for this column
Run Code Online (Sandbox Code Playgroud)
它看起来像一个 NUMBER(8, 2)...
该字段位于 @Embeddable 类中,类型为 BigDecimal,没有任何字段注释:
@Entity
@Table(...)
public class ClassA implements Serializable {
@Embedded
private ClassB bObject;
}
@Embeddable
public class ClassB implements Serializable {
@Embedded
private ClassC cObject;
}
@Embeddable
public class ClassC implements Serializable {
private BigDecimal myField;
}
Run Code Online (Sandbox Code Playgroud)
还有其他东西可以覆盖我的列定义吗?