修复:强化装填事务一致性

This commit is contained in:
焦龙言
2026-07-26 17:56:58 +08:00
parent 18abe861f9
commit f6e994d95f
4 changed files with 182 additions and 22 deletions
@@ -117,7 +117,7 @@ class MasterDao:
) -> Any | None:
statement = select(model).where(id_column == resource_id)
if for_update:
statement = statement.with_for_update()
statement = statement.with_for_update().execution_options(populate_existing=True)
result = await db.execute(statement)
return result.scalar_one_or_none()
@@ -187,8 +187,20 @@ class MasterDao:
return await cls._paginate(db, statement, query_object, is_page)
@classmethod
async def get_strain(cls, db: AsyncSession, strain_id: int) -> BizStrain | None:
return await cls._get(db, BizStrain, BizStrain.strain_id, strain_id)
async def get_strain(
cls,
db: AsyncSession,
strain_id: int,
*,
for_update: bool = False,
) -> BizStrain | None:
return await cls._get(
db,
BizStrain,
BizStrain.strain_id,
strain_id,
for_update=for_update,
)
@classmethod
async def find_strain_by_code(cls, db: AsyncSession, strain_code: str) -> BizStrain | None: