问题陈述
我有以下实体:
@Entity
public class Session {
@Column(name = "last_screen_id")
private Long lastScreenId;
@JoinColumn(name = "last_screen_id", referencedColumnName = "id", insertable = false, updatable = false)
@OneToOne
private Screen lastScreen;
// Getters and setters for lastScreenId
// Getter for lastScreen (I don't have a setter for lastScreen object since lastScreen object is marked as insertable=false and updatable=false)
}
如果更新LastScreenId
,我希望更新LastScreen
对象。例如,我使用会话将
我希望LastScreenId
从1
设置为2
。SetLastScreenId(2)LastScreen
对象是id为2
的对象
更新LastScreenId
并使用SessionRepository
保存Session
对象,并将当前的Session
对象替换为保存在数据库中的新的Session
对象
session=SessionRepository.Save(屏幕);
失败,因为未从数据库中提取lastscreen
对象
@Transactional(Transactional.TxType.REQUIRES_NEW)
public Session saveSessionInANewTransaction(Session session) {
return sessionRepository.save(session);
}
这个也失败了。
您需要在同一个对象中重复映射“last_screen_id”列的原因是什么?
如果没有,我建议您将其更改为仅将其映射到一个屏幕
实体,该实体要简单得多:
@Entity
public class Session {
@JoinColumn(name = "last_screen_id", referencedColumnName = "id")
@OneToOne
private Screen lastScreen;
}
若要将屏幕从ID%1更新为ID%2,您必须首先获取新屏幕,并将其设置为会话
的最后屏幕。
如果没有新屏幕
的ID,则引发异常:
public void updateSessionLastScreen(Long sessionId, Long newScreenId){
Session session = sessionRepository.findbyId(sessionId).orElseThrow(()-> new RuntimeException("Session does not exist"));
Screen newScreen = screenRepository.findById(newScreenId).orElseThrow(()-> new RuntimeException("Screen does not exist"));
session.setLastScreen(newScreen);
}
我有两个实体 实体1 实体2 我对Jpa不是很熟悉,所以如果您需要对我的问题进行任何澄清,或者您需要任何更多的信息,请告诉我。
我正在尝试在我的Spring数据服务中使用查询DSL来实现类似于SQL的查询 成员可以是项目或黑客马拉松的成员。项目是黑客马拉松的一部分。我试图找到哈查顿和子项目的所有成员。 因为谓词产生了交叉连接,所以QueryDslPredicateExecutor接口对我不起作用: 我尝试过使用JPAQuery来手动管理连接策略,但是也遇到了同样的问题: Hibernate:选择memberenti0_.i
我有一个User类,它有一些附加属性: 现在,如果我调用一些方法来改变其中一个房子(例如改变它的名称属性),如果我调用,我仍然会得到房子的旧值: 我如何确保它总是更新?
主要内容:JPA实体更新示例JPA允许我们通过更新实体来更改数据库中的记录。 JPA实体更新示例 在这里,我们将演示如何根据主键更新学生的年龄。 完整的项目代码如下所示 - 这个例子包含以下步骤 - 第1步: 在包下创建一个名为的实体类,它包含属性:,和。 文件:StudentEntity.java 的代码如下 - 第2步: 将实体类和其他数据库配置映射到文件中。 文件:persistence.xml 的代码如下 - 在包下
我有这些桌子: 我需要使用Spring构建一个RESTful Web服务,它接收JSON并在验证后将它们保存到数据库中。例如,在中有一条带有的记录。因此的JSON如下所示: 我想这样做: 我拥有以下实体: 在这种情况下,person中的doc总是为null,这很容易理解。但是如何实现我需要的行为呢?
在Symfony 2(最新版本)下,我试图更新我的实体: 我得到了这个错误消息到我的终端: [Symfony\Component\Config\Definition\Exception\InvalidConfigurationException] 无法识别的选项“security.firewalls.access\u control”下的“0、1、2、3” 我是Symfony的新手,我不知道在哪里