小编cri*_*zis的帖子

Doctrine DQL,类表继承和对子类字段的访问

我有一个DQL查询和实体专业化的问题.

我有一个叫做的实体Auction,它OneToOne与之有关系Item.ItemmappedSuperclassFilmBook.我需要一个可以支持搜索引擎的查询,允许用户查找具有不同属性的拍卖,AND销售具有不同属性的项目(这是AND使其具有挑战性的部分).

问题是即使Auction有一个指向Item这样的关联,我需要访问Film- 和Book- 特定的字段.用户将指定Item他们正在寻找的类型,但除了INSTANCE OF在我的DQL查询中使用之外,我没有看到任何使用此信息的方法.

到目前为止,我已尝试使用如下查询:

SELECT a FROM Entities\Auction a
    INNER JOIN a.item i 
    INNER JOIN i.bookTypes b 
    WHERE i INSTANCE OF Entities\Book 
    AND b.type = 'Fantasy' 
    AND ...". 
Run Code Online (Sandbox Code Playgroud)

这样的查询会导致错误说:

Entities\Item没有命名的字段或关联bookTypes

这是假的Book,但却是如此Item.

我也试过了

SELECT a FROM Entities\Book i 
    INNER JOIN i.auction …
Run Code Online (Sandbox Code Playgroud)

php inheritance doctrine dql doctrine-orm

18
推荐指数
1
解决办法
9019
查看次数

私有组件的 React.memo 与 useMemo

想象一下,您有一个组件需要一个函数来呈现该组件层次结构中的特定子树:

const Timeline = ({ renderDetails, ... }: { renderDetails: (rowData, sectionID, rowID) => React.Node }) => <div>{renderChildren(...)}</div>;
Run Code Online (Sandbox Code Playgroud)

使用上有区别吗:

const MyComponent = React.memo(({ someProp }) => <someComponentHierarchyHere>...</someComponentHierarchyHere>);

const ParentComponent = ({ someProp }) => {
    const renderChildren = useCallback(() => <MyComponent someProp={someProp} />, [someProp]);

    return <Timeline renderChildren={renderChildren} />;
};

Run Code Online (Sandbox Code Playgroud)

const ParentComponent = ({ someProp }) => {
    const MyComponent = useMemo(({ someProp }) => <someComponentHierarchyHere>...</someComponentHierarchyHere>);
    const renderChildren = useCallback((rowData, sectionID, rowID) => <MyComponent someProp={someProp} />, [someProp]);

    return <Timeline renderChildren={renderChildren} …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native

9
推荐指数
1
解决办法
4504
查看次数

org.springframework.dao.DataIntegrityViolationException:具有相同标识符值的不同对象已经与会话相关联

此方法以事务开头

@Transactional(propagation = Propagation.REQUIRED)
public Account generateDirectCustomerAccountEntity(AccountReq source, Map<String, String> headers, String workflowId) {
    Account dbAccount = dCustomerModelToEntityMapper.map(source, headers);
    dbAccount = saveAccount(source, dbAccount, headers, workflowId);
    return dbAccount;
}   
Run Code Online (Sandbox Code Playgroud)

这是一个映射器类,我在其中创建 DB Account 实体并映射 address 和 contacts 。

@Override
@LogExecutionTime(log=true)
public Account map(AccountReq accountReq, Map<String, String> headers) {
        logger.info("AccountModelToEntityMapper.mapDirectCustomer*****START");
        Account dbAccount = new Account();
        AccountCode accountCode = dbService.getAccountCodeForDirectCustomer(accountReq);
        String accountId = dbService.genarateAccountId(accountCode);
        logger.info("genarated AccountID for Direct Customer is={}", accountId);
        dbAccount.setAccountId(accountId);
        setAccountContact(dbAccount, accountReq, headers);
        setAddress(dbAccount, accountReq);
        dbAccount.setAccountType(accountCode.getCodeId());
        return dbAccount;
}
Run Code Online (Sandbox Code Playgroud)

当我不在地图内调用下面的方法时,一切正常。但是当我调用它时,我得到了标题中描述的错误。

private void …
Run Code Online (Sandbox Code Playgroud)

session jpa transactions

0
推荐指数
1
解决办法
2403
查看次数