在我的课堂上,我有以下的顺序-
@Entity
public class CustomerOrder {
@Id
@SequenceGenerator( name = "CUSTOMER_ORDER_INVOICE_NO_SEQ_NAME", sequenceName = "CUSTOMER_ORDER_INVOICE_NO_SEQ", allocationSize = 20 )
@GeneratedValue( strategy = GenerationType.SEQUENCE, generator = "CUSTOMER_ORDER_INVOICE_NO_SEQ_NAME" )
private int id;
private long orderInvoiceNo;
//.. getters and setters
}
这是spring data jpa repository类,具有获取下一个值的方法
@Repository
public interface CustomerOrderRepository
extends CrudRepository<CustomerOrder, Long>, JpaSpecificationExecutor<CustomerOrder> {
@Query( value = "SELECT next_val FROM CUSTOMER_ORDER_INVOICE_NO_SEQ", nativeQuery = true )
Long getNextOrderInvoiceNoSeq();
}
我需要从序列中获取next_val,并将该值传递到两个不同的位置。所以我调用我的存储库的getNextOrderInvoiceNoSeq()方法,并将该值存储为orderInvoiceNo-
@Autowired
private CustomerOrderRepository customerOrderRepository;
public void placeCustomerOrder( CustomerOrder customerOrder )
{
long orderInvoiceNo = customerOrderRepository.getNextOrderInvoiceNoSeq();
customerOrder.setOrderInvoiceNo(orderInvoiceNo);
// using the same orderInvoiceNo to my other pojo
// CustomerPurchase customerPurchase = new CustomerPurchase
// customerPurchase.setOrderInvoiceNo(orderInvoiceNo);
//....
customerOrderRepository.save(customerOrder);
}
@Entity
public class CustomerPurchase {
private String itemId;
private long orderInvoiceNo;
//.....
}
所以现在发生了什么,对于放置客户订单的前两次迭代,我得到的订单发票号为1和41,但在那之后,每次我得到41作为序列的next_val,因此使每个订单都有相同的发票号为41。
MySQL没有序列,所以在本例中Hibernate将创建一个表生成器。
Hibernate将执行选择更新
以获取最新的下一个值
,并执行更新
以增加值:
SELECT next_val as id_val
FROM CUSTOMER_ORDER_INVOICE_NO_SEQ FOR UPDATE
UPDATE CUSTOMER_ORDER_INVOICE_NO_SEQ
SET next_val= 2 where next_val=1
getNextOrderInvoiceNoSeq()
只为最新值选择,但不增加它。
尽管如此,我不建议实施这一点。最好切换到本机序列,并使用外键CustomerOrder和CustomerPurchase。
问题内容: 我有一个清单 并希望“移动”其值,以便将其更改为 下一步 Python中是否有内置函数可以做到这一点? 还是有比这更好或更短的方法 问题答案: a = [1,2,3,4,5] >>> a.append(a.pop(0)) >>> a [2, 3, 4, 5, 1] 但是,这很昂贵,因为它必须移动整个列表的内容,即O(n)。如果在您的Python版本中可用,则可能是一个更好的选择,它允许
问题内容: 我尝试在spring版本的项目中将hibernate模式从4升级到5 。升级之后,调用更新方法时,在堆栈跟踪中发现以下错误。 我用注解更改了自动递增的ID 错误仍然存在。 问题答案: 您需要设置Hibernate5.x ..参见并链接。 对于较早版本的hibernate 4.x:
用这个来清理它: 进程应该退出还是留在内存中?如果它应该留在内存中,在Windows7任务管理器中可见,我可以用编程方式杀死它吗?我应该吗?
问题内容: 我似乎在Hibernate中映射列表时遇到问题。在我们的项目中有一类用含有类与含有。 Hibernate 是否可以使用注释进行映射?我的意思是,因为它没有注释? 问候 问题答案: 用途: 资料来源: 7.2.3。基本类型和可嵌入对象的集合
正如标题所示,我使用上面的堆栈来深入了解一段时间内特定方法调用的频率。 这是如何在代码中设置收集指标的: 这是Grafana中图形的配置方式: 这就是结果图的样子: 如您所见,当没有方法调用时,该行将停留在最新值。当我停止应用程序时,有几次下降到0(在开始时两个大的“驼峰”之后,在结束时又下降了一个)。 在最后一个标记过了一段时间后,行不应该降到0吗?E、 g.应用程序启动后,会发生几个方法调用,
我试图创建一个回归模型,但我的验证精度保持在。我试图训练图像,让网络找到一个物体的位置和它覆盖的粗糙区域。我增加了解冻层和精度的平台下降到。如果能帮我找出我做错了什么,我将不胜感激。 数据是由一个包含图像数据和一些标签的tf记录文件生成的。这是发电机的最后一点。 获取批处理:数据集从两个目录加载,其中包含tfrecord文件,一个用于培训,另一个用于验证 1月1/1000/1000 1000/10