Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以使用hibernate使用JavaPOJO只映射几个表列吗_Java_Hibernate_Pojo - Fatal编程技术网

我们可以使用hibernate使用JavaPOJO只映射几个表列吗

我们可以使用hibernate使用JavaPOJO只映射几个表列吗,java,hibernate,pojo,Java,Hibernate,Pojo,使用hibernate和java,我们是否需要将所有java pojo字段映射到数据库表列?或者我们可以只映射几个字段和几个列吗?我假设您只想在数据库中持久化类字段的子集。 你可以使用 标记不希望持久化的字段的注释 警告:请确保这些字段可能未初始化(因为加载时在数据库中没有值)我没有检查它,但我不明白为什么不能保留一些未映射的字段,特别是如果它们在表中不作为列存在的话。 当然,在某些情况下,您需要将列映射到字段,例如,当列不能为null时,在保存过程中会出现异常。在hibernate中,如果没有

使用hibernate和java,我们是否需要将所有java pojo字段映射到数据库表列?或者我们可以只映射几个字段和几个列吗?

我假设您只想在数据库中持久化类字段的子集。 你可以使用 标记不希望持久化的字段的注释


警告:请确保这些字段可能未初始化(因为加载时在数据库中没有值)

我没有检查它,但我不明白为什么不能保留一些未映射的字段,特别是如果它们在表中不作为列存在的话。
当然,在某些情况下,您需要将列映射到字段,例如,当列不能为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();
}