Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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

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
Java 如何存储从另一个对象继承的对象_Java_Hibernate - Fatal编程技术网

Java 如何存储从另一个对象继承的对象

Java 如何存储从另一个对象继承的对象,java,hibernate,Java,Hibernate,我有一个关于冬眠的问题。我使用的是3.1.3版本,我有两个类,一个继承另一个。这是我的设想: //User class, which is stored in the database and hibernate mapped public class User //Logged user class, this is a bean which inherits from user and //stores only user information and some session dat

我有一个关于冬眠的问题。我使用的是3.1.3版本,我有两个类,一个继承另一个。这是我的设想:

//User class, which is stored in the database and hibernate mapped
public class User

//Logged user class, this is a bean which inherits from user and 
//stores only user information and some session data
public class LoggedUser extends User
在我的代码中的某个地方,我从会话中获取了loggeduserbean,并将其分配给一个用户变量

User user = Session.getBean("LoggedUser");
这可以不用强制转换来完成,但是当我尝试将“user”对象存储到数据库中时,我遇到了一个“unknown entity”错误,因为hibernate无法识别LoggedUser正在扩展用户类


有很多关于在Hibernate中实现继承的教程,但我对保存LoggedUser的额外属性不感兴趣,我只想存储用户表中的信息。有什么想法吗?

我不确定清洁的解决方案,但这里有一些提示可能会引导您找到一些

  • 将LoggedUser标记为一个实体,映射到同一个用户表(如果可能的话),并用@Transient标记您不想持久化的字段(所有LoggedUser字段)
  • 从LoggedUser向用户添加@Transient字段,并去掉LoggedUser
  • 在User类中创建一个构造函数,该构造函数接受LoggedUser并使用必需的属性初始化用户
  • 将LoggedUser标记为LoggedUserDTO,并创建一个实体>dto映射器

  • 希望这能让您看到光明的一面。

    第一个选项起作用,但是为了使用标记,我在user.hbm.xml中指定了LoggedUser类,该类具有用户的相同属性并指向相同的表。谢谢好吧,这很好,但我仍然认为继承+瞬态字段比xml中实体的复制要好,但这取决于。。