Java JPA中是否绝对需要列注释?
我还有一个关于JPA的问题。如果我想将每个成员变量存储在数据库中,是否需要用@Column注释它?或者是否可以通过一些成员变量(在这些示例中为字段“timestamp”)将其省略,并且在每个可能的场景中,该字段将存储在数据库中:Java JPA中是否绝对需要列注释?,java,jpa,Java,Jpa,我还有一个关于JPA的问题。如果我想将每个成员变量存储在数据库中,是否需要用@Column注释它?或者是否可以通过一些成员变量(在这些示例中为字段“timestamp”)将其省略,并且在每个可能的场景中,该字段将存储在数据库中: @Entity @Table(name = "usercontent") public class UserContentEntity implements Persistable<Long> { /** serialVersionUID */
@Entity
@Table(name = "usercontent")
public class UserContentEntity implements Persistable<Long> {
/** serialVersionUID */
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "description")
private String contentdescription;
@Column(name = "name")
private String contentname;
@Column(name = "bytes")
@Lob
private byte[] contentbytes;
@Column
private String creator;
private Date timestamp;
// get- and set methods
}
@实体
@表(name=“usercontent”)
公共类UserContentEntity实现持久化{
/**serialVersionUID*/
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私人长id;
@列(name=“description”)
私有字符串内容描述;
@列(name=“name”)
私有字符串contentname;
@列(name=“bytes”)
@高球
私有字节[]contentbytes;
@纵队
私有字符串创建者;
私有日期时间戳;
//get-and-set方法
}
什么时候绝对需要使用注释@列
非常感谢
Maik否。它不是“必要的”,除非您想覆盖默认列命名或默认数据存储列类型等,并且仅仅放置@column本身并没有任何作用所以带注释列和不带注释@column的成员将存储在我上面的小示例中?这是对的吗?绝大多数标准java类型都是默认的“persistent”(使用@Transient来显式地不持久化它们)。但是如果我在exampe bean中有一个memeber变量:“List special=new ArrayList();”,情况会怎样呢。并且这个成员变量没有用OntToMany或其他东西注释。情况如何?什么将被持久化?那么“SpecialBean”是一个实体?如果它是一个关系,那么您必须将关系注释放在ONeToMany/OneToOne/ManyToMany(尽管一些JPA实现也可以在没有关系的情况下处理它,DataNucleus JPA不需要IIRC)。该栏仍然不需要。您能为您的答案提供参考吗?