hibernate-annotations——@Column
今日はHibernateの@Column注記を見てきました
@Column( name="columnName"; 1 boolean unique() default false; 2 boolean nullable() default true; 3 boolean insertable() default true; 4 boolean updatable() default true; 5 String columnDefinition() default ""; 6 String table() default ""; 7 int length() default 255; 8 int precision() default 0; 9
int scale() default 0; 10
)
7、9、10以外は分かりやすいです.
ここで9と10はdecimalの精度を設定し、FloatとDoubleタイプのフィールドの定義を開始し、この2つのタイプのフィールドに@Column注記を使用すると、結果として9と10は機能しません.最後にBigDecimalタイプを使用すると9と10が機能することが分かった.columnDefinition定義タイプ(@Column(columnDefinition="decimal"))を自分で使用する場合は、精度を自分で定義する必要があり、9と10は機能しません.同様に、DoubleとFloatタイプを使用するとMySQLでdoubleとfloatが生成され、機能しません.
7は@SecondaryTable注記とともに使用します.
本文はただ自分のメモとして、私のhibernateに対する理解はまだ浅くて、各位の大牛の指導を歓迎します.
@Column( name="columnName"; 1 boolean unique() default false; 2 boolean nullable() default true; 3 boolean insertable() default true; 4 boolean updatable() default true; 5 String columnDefinition() default ""; 6 String table() default ""; 7 int length() default 255; 8 int precision() default 0; 9
int scale() default 0; 10
)
7、9、10以外は分かりやすいです.
ここで9と10はdecimalの精度を設定し、FloatとDoubleタイプのフィールドの定義を開始し、この2つのタイプのフィールドに@Column注記を使用すると、結果として9と10は機能しません.最後にBigDecimalタイプを使用すると9と10が機能することが分かった.columnDefinition定義タイプ(@Column(columnDefinition="decimal"))を自分で使用する場合は、精度を自分で定義する必要があり、9と10は機能しません.同様に、DoubleとFloatタイプを使用するとMySQLでdoubleとfloatが生成され、機能しません.
7は@SecondaryTable注記とともに使用します.
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.SecondaryTable;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* @author lan 2010-8-23
*/
@Entity
@Table(name="student")
@SecondaryTable(name="SName")
public class Student {
private Integer id;
private String name;
private Integer age;
private Date birthday;
private String resume;
private BigDecimal height;
private Double weight;
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(table="SName")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Lob
@Column(insertable=false)
public String getResume() {
return resume;
}
public void setResume(String resume) {
this.resume = resume;
}
@Column(precision=5,scale=2)
public BigDecimal getHeight() {
return height;
}
public void setHeight(BigDecimal height) {
this.height = height;
}
@Column(precision=5,scale=2)
public Double getWeight() {
return weight;
}
public void setWeight(Double weight) {
this.weight = weight;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + ", birthday=" + birthday + ", resume="
+ resume + ", height=" + height + ", weight=" + weight + "]";
}
}
本文はただ自分のメモとして、私のhibernateに対する理解はまだ浅くて、各位の大牛の指導を歓迎します.