我们可以使用hibernate使用JavaPOJO只映射几个表列吗
使用hibernate和java,我们是否需要将所有java pojo字段映射到数据库表列?或者我们可以只映射几个字段和几个列吗?我假设您只想在数据库中持久化类字段的子集。 你可以使用 标记不希望持久化的字段的注释我们可以使用hibernate使用JavaPOJO只映射几个表列吗,java,hibernate,pojo,Java,Hibernate,Pojo,使用hibernate和java,我们是否需要将所有java pojo字段映射到数据库表列?或者我们可以只映射几个字段和几个列吗?我假设您只想在数据库中持久化类字段的子集。 你可以使用 标记不希望持久化的字段的注释 警告:请确保这些字段可能未初始化(因为加载时在数据库中没有值)我没有检查它,但我不明白为什么不能保留一些未映射的字段,特别是如果它们在表中不作为列存在的话。 当然,在某些情况下,您需要将列映射到字段,例如,当列不能为null时,在保存过程中会出现异常。在hibernate中,如果没有
警告:请确保这些字段可能未初始化(因为加载时在数据库中没有值)我没有检查它,但我不明白为什么不能保留一些未映射的字段,特别是如果它们在表中不作为列存在的话。
当然,在某些情况下,您需要将列映射到字段,例如,当列不能为null时,在保存过程中会出现异常。在hibernate中,如果没有以任何其他方式描述,则所有字段都将被映射。因此,可以指向ORM映射器,使用
[@Transient][1] annotation in case JPA is used
or even the **transient** keyword from java - careful when using this one, it will prevent the given field to be serialized
是的,您可以将Pojo类的几个字段映射到表列。没问题。它将成功地将数据存储在数据库中 例如: 以下是StudentData Pojo
public class StudentData1 {
private String name;
private int id;
private String name1;
//setters & getters
}
和HBM文件:
<class name="example.StudentData" table="StudentData">
<id name="id" column="pid" >
<generator class="assigned" />
</id>
<property name="name" column="pname" />
</class>
您可以运行此代码,它将只执行和存储两个字段。因此,它的意思是,我们在hbm文件中所做的映射,只有字段和列将在事务中发生。。。。。。。好。。有道理。。谢谢:)@KP_JavaDev欢迎您。如果这个答案对你有用,把它作为正确的答案,对其他人也会有帮助。是的,谢谢。这个答案很有帮助:):)
<mapping resource="StudentData.hbm.xml"/>
public static void main(String[] args) {
SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session session = factory.openSession();
StudentData1 s = new StudentData1();
s.setId(1);
s.setName("iPhone");
Transaction tx = session.beginTransaction();
session.save(s);
System.out.println("Object saved successfully.....!!");
tx.commit();
session.close();
factory.close();
}