小编Joh*_*ica的帖子

Delphi中的AOP支持

是否可以在Delphi中进行面向方面编程?我会对原生支持以及第三方解决方案感兴趣.

我没有想要用AOP解决的具体问题,但我只是对学习AOP感兴趣.

delphi aop

12
推荐指数
2
解决办法
3235
查看次数

JPQL,如何不选择

我有一个非常简单的SQL需要执行.

我有一个ProcessUser,RoleProcessUserRole表.一个直截了当的多对多

我想选择所有ProcessUser也有管理员角色的人.

但是我的JPQL失败是因为我的用户也有角色官,因此在列表中检索它.

这是JPQL:

entityManager.createQuery("SELECT p FROM " + ProcessUser.class.getName() 
  + " p join p.roles role WHERE role.name NOT IN ('sysadmin')").getResultList();
Run Code Online (Sandbox Code Playgroud)

生成的SQL是:

select
        distinct processuse0_.id as id8_,
        processuse0_.position as position8_,
        processuse0_.username as username8_,
        processuse0_.organization_id as organiza9_8_,
        processuse0_.passwordHash as password4_8_,
        processuse0_.fromEmail as fromEmail8_,
        processuse0_.firstname as firstname8_,
        processuse0_.lastname as lastname8_,
        processuse0_.processes as processes8_
    from
        ProcessUser processuse0_ 
    inner join
        ProcessUserRoles roles1_ 
            on processuse0_.id=roles1_.userId 
    inner join
        Role role2_ 
            on roles1_.roleId=role2_.id 
    where
         (
            role2_.name not in …

jpa jpql

12
推荐指数
1
解决办法
2万
查看次数

如何使用Open Tools API折叠插入的区域?

我想在编辑视图中插入一个区域,然后折叠该区域.

// fEditView: IOTAEditView;

var
  writer: IOTAEditWriter;
begin
  writer := fEditView.Buffer.CreateUndoableWriter;
  //...
  writer.Insert('{$REGION ''Documentation''}'#13#10'{$ENDREGION}');
  writer := nil;  // Flush the buffer
  fEditView.Position.GotoLine(lineNo); // go to the line number of the region
  fEditView.Paint;
end;
Run Code Online (Sandbox Code Playgroud)

此代码段将在代码编辑器中插入一个区域.但IDE需要一些操作才能在代码编辑器中生成这样的区域.

有没有办法强制IDE执行此操作然后我可以使用

(fEditView as IOTAElideActions).ElideNearestBlock;
Run Code Online (Sandbox Code Playgroud)

折叠吗?

delphi region toolsapi

12
推荐指数
1
解决办法
396
查看次数

JavaScript文件名之后使用的"?"是什么意思?

例如,拥有:

<script type="text/javascript"
        src="http://somedomain.com/js/somejs.js?14">
</script>
Run Code Online (Sandbox Code Playgroud)

那么"?14"在这里意味着什么呢?

javascript filenames

12
推荐指数
2
解决办法
2124
查看次数

如何在join字段中使用逗号分隔列表连接两个表

我有两张桌子,categoriesmovies.

movies表格中我有一个专栏categories.该列包含电影适合的类别.类别是以逗号分隔的ID.

这是一个例子:

Table categories {
  -id-       -name-
  1          Action
  2          Comedy
  4          Drama
  5          Dance
}

Table movies {
  -id-       -categories-  (and some more columns ofc)
  1          2,4
  2          1,4
  4          3,5
}
Run Code Online (Sandbox Code Playgroud)

现在回答实际问题:是否可以执行从电影表中排除类别列的查询,而是从类别表中选择匹配的类别并将它们返回到数组中?就像一个连接,但问题是有多个用逗号分隔的类别,是否有可能做某种正则表达式?

mysql csv join

12
推荐指数
2
解决办法
2万
查看次数

Mysql数据类型 - Enum或不枚举,Enum是否为空?

我有大型数据库(数百万行),我正在尝试为2个字段的数据类型做出最佳选择.我做的大部分都是varchar或INT.然而,2个领域我想知道Enum是否是最好的方式.

字段1 第一个字段是性别,我的数据目前是"男性"或"女性",或者可能是空白.我最初设置如下:

GENDER VARCHAR(6) NOT NULL
Run Code Online (Sandbox Code Playgroud)

这是最好的方式,还是最好将其设置为:

GENDER ENUM ('Male', 'Female') NOT NULL
Run Code Online (Sandbox Code Playgroud)

我是否需要将其设为NOT NULL以允许空白,或者我是否需要添加空白,即

GENDER ENUM ('Male', 'Female', '') NOT NULL
Run Code Online (Sandbox Code Playgroud)

更何况,我正在考虑将整个领域转换为M或F.

第2场: 除了状态字段外,我还有很多相同的事情要考虑,其中可能包含52个值(50个状态,DC,加空白).

我想最大的问题是 - 所有这些Enum的东西都值得吗?我的数据库有数百万行,所以一切都是一个因素,但我应该只使用VARCHAR(2)作为状态而不是ENUM.

mysql database database-schema

12
推荐指数
2
解决办法
8424
查看次数

了解.cbproj文件中的包导入

我正在使用Embarcadero RAD Studio 2010(C++).项目文件(.cbproj)有五个不同的标记,包含.bpis或.libs列表.我想了解一些关于链接器如何使用这些库文件列表的信息(使用或不使用运行时包构建时).

LinkPackageImports

LinkPackageStatics

AllPackageLibs

PackageLibs

PackageImports
我想我已经理解了最后一个.它包含可以从IDE中的"项目属性"设置的运行时包列表.

这个问题的动机是我试图从我的应用程序中消除不必要的依赖项..cbproj中的这五个标签似乎都包含各种不同的lib和bpis.我知道我不需要的一些库,以及我认为我不需要的一些库.从某些列表中删除某些库似乎没有任何效果,而从其他列表中删除其他库会导致表单的链接器错误[ILINK32 Error] Fatal: Unable to open file 'FILENAME.OBJ'

我正在慢慢解决所有链接器问题,但是当我在这五个列表中的一个中包含库名称时,确切地知道我告诉链接器要做什么将非常有帮助.

linker c++builder c++builder-2010 runtime-packages

12
推荐指数
1
解决办法
4234
查看次数

Delphi XE2 RTTI坏了吗?

我最近从D2010迁移到了DXE2,并在XE2和XE3(在我的朋友XE3中测试)中发现了与类内TBytes字段的RTTI生成相关的showstopper bug(或功能?).

我发现从不生成类中TBytes变量的RTTI信息.

以下代码在D2010中运行良好,但在XE2/XE3中显示消息"Error"

有没有人有任何线索?这将彻底打破我们所有的软件数据序列化实现

要测试代码,请将Rtti单位添加到使用声明中

type

  TMyClass = class
  public
    Field1: Integer;
    Field2: TBytes;
  end;


procedure TForm2.Button1Click(Sender: TObject);
var
  i: Integer;
  Data: TMyClass;
  Rtti: TRttiContext;
  RttiClassType: TRttiInstanceType;
begin

  Data := TMyClass.Create;
  try

    // Get the context
    Rtti := TRttiContext.Create;
    try

      // Get the type for the class
      RttiClassType := TRttiInstanceType(Rtti.GetType(Data.ClassInfo));

      // Check the fields
      for i := 0 to High(RttiClassType.GetFields) do
      begin

        // Check the field type
        if not Assigned(RttiClassType.GetFields[i].FieldType) then
          ShowMessage('Error');

      end;

    finally
      Rtti.Free;
    end;

  finally
    Data.Free;
  end; …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2010 delphi-xe2 delphi-xe3

12
推荐指数
2
解决办法
1270
查看次数

Vaadin JpaContainer

我正在使用JPAContainer + Hibernate,加载需要很长时间.例如,SQLContainer加载60ms的页面和JPA Container加载1.30s的相同页面.

在控制台中使用JPAContainer,我看到许多SQL查询 - 对于每个实体 - 查询; 实体人员没有其他表格的链接;

使用jpacontainer的代码:

JPAContainer<Person> container = JPAContainerFactory.make(Person.class,
            "persistence-unit");
table.setContainerDataSource(container);
Run Code Online (Sandbox Code Playgroud)

使用SQLContainer的代码:

JDBCConnectionPool pool = null;
    try {
        pool = new SimpleJDBCConnectionPool("org.postgresql.Driver",
                "jdbc:postgresql://127.0.0.1:5432/postgres", "postgres",
                "pwd");
    } catch (SQLException e) {
        e.printStackTrace();
    }
    TableQuery tq = new TableQuery("Person", pool);
    SQLContainer sqlContainer = null;
    try {
        sqlContainer = new SQLContainer(tq);
    } catch (SQLException e) {
        e.printStackTrace();
    }
table.setContainerDataSource(sqlContainer);
Run Code Online (Sandbox Code Playgroud)

我的persistence.xml文件:

<persistence-unit name="persistence-unit" transaction-type="RESOURCE_LOCAL">

  <jta-data-source>java:jboss/datasources/mfc-frontendDS</jta-data-source>

  <properties>
     <!-- Properties for Hibernate -->
    <property name="hibernate.archive.autodetection" value="class"/>
    <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
    <property …
Run Code Online (Sandbox Code Playgroud)

hibernate vaadin

12
推荐指数
1
解决办法
5052
查看次数

启动时恢复以前打开的项目和页面

一个愚蠢的问题.当我从RAD Studio XE2退出然后再次启动它时,我发现现在所有以前打开的东西都已关闭,我必须手动恢复它们.

我想找到已经公开的

  • 在以前的遗产中开放的项目组,
  • 所有打开的页面(例如源文件,欢迎页面等)
  • 断点
  • 书签

所以我可以继续工作而不记住一切.

Eclipse和Visual Studio执行此操作.如何让RAD Studio 在启动时恢复所有这些(或其中一些)?

ide delphi breakpoints

12
推荐指数
2
解决办法
2581
查看次数