在一些JPA注释中,我想直接在代码中使用字段名称来代替容易出错的字符串:
@javax.persistence.OrderBy(value = User_.registrationDate.getName())
public List<PlugConfig> getPlugConfigs() { ... }
Run Code Online (Sandbox Code Playgroud)
但上面不会编译,因为获取名称我必须使用非常量表达式的函数(User_生成JPA @StaticMetamodel).
是否有可能以任何方式使用元模型或者我坚持使用直接字符串常量?有没有办法为元模型自动生成这样的字符串常量?(我正在使用maven-processor-plugin进行生成)
我正在使用上面的代码来生成id:
@Id
@GeneratedValue(generator = "seqq")
@SequenceGenerator(name = "seqq", sequenceName = "seqq", allocationSize = 20, initialValue = 1)
public long getId() {
return id;
}
Run Code Online (Sandbox Code Playgroud)
我还更新了persistence.xml:
<property name="hibernate.id.new_generator_mappings" value="true"/>
Run Code Online (Sandbox Code Playgroud)
并在数据库中更新了ddl:
CREATE SEQUENCE seqq
INCREMENT 20
MINVALUE 1
MAXVALUE 9223372036854775807
START 9171
CACHE 1;
Run Code Online (Sandbox Code Playgroud)
由于这个allocationSize = 20与增量值相同.但是,我得到任意错误,说重复键值违反了唯一约束"myobjects_pkey".通常在首次保存试用后会发生此错误.看来hibernate试图用相同的Id来持久化实体.但是,START确保该行高于表id中的任何行.如何消除重复约束错误?
在wildfly 中,我异步执行无状态ejb 方法(它用@Asynchronous 注释映射)。在调用方法中,我在线程本地中有一些上下文信息。将此数据传递给异步方法的最佳方法是什么?我不想向异步方法签名添加其他参数。
我有正确配置OpenEJB 3.1.3数据源的问题.我尝试配置连接到postgres db,但是我调试测试我得到默认的hsql连接参数.
这是我的测试类:
@RunWith(ApplicationComposer.class)
public class OpenEJBTest {
@EJB
Files fb;
@Test
public void testSth() {
List<UploadSession> uploadNotFinishedSessions = fb.getUploadNotFinishedSessions();
}
@Module
public EjbJar beans() {
EjbJar ejbJar = new EjbJar("beans");
ejbJar.addEnterpriseBean(new StatelessBean(FilesBean.class));
ejbJar.addEnterpriseBean(new StatelessBean(FilesUtilBean.class));
ejbJar.addEnterpriseBean(new StatelessBean(ServerFilesBean.class));
ejbJar.addEnterpriseBean(new StatelessBean(UserUtilBean.class));
return ejbJar;
}
@Module
public PersistenceUnit persistence() {
PersistenceUnit unit = new PersistenceUnit("postgresPU", HibernatePersistence.class.getName());
String simpleXml = SimpleXmlUtil.toSimpleXml(unit);
System.out.println(simpleXml);
unit.setJtaDataSource("PostgresDS");
unit.setNonJtaDataSource("PostgresDSUnmanaged");
return unit;
}
}
Run Code Online (Sandbox Code Playgroud)
我试过了:
Run Code Online (Sandbox Code Playgroud)postgresPU=new://Resource?type=DataSource postgresPU.JdbcDriver=org.postgresql.Driver postgresPU.JdbcUrl=jdbc:postgresql:/localhost:5433/pdb postgresPU.JtaManaged=true postgresPU.DefaultAutoCommit=false postgresPU.UserName=...
Run Code Online (Sandbox Code Playgroud)<Resource id="PostgresDS" type="DataSource"> JdbcDriver org.postgresql.Driver JdbcUrl …
我想从 vaadin 表切换到广受好评的网格,但我不知道如何克服网格无法渲染组件的限制。在表中,我有一列显示具有动态数量的按钮的 HorizontalLayout。网格允许使用按钮渲染器,但这意味着每一列中只会渲染一个按钮,我需要它更灵活。也许我可以编写自己的 Rendere 来支持我需要的内容,但它需要一些较低级别/gwt/javascript 编程,并且我不确定是否可以实现所需的结果。亲爱的vaadin小伙伴们,你们有什么推荐吗?
java ×4
asynchronous ×1
hibernate ×1
java-ee ×1
javascript ×1
jpa ×1
maven ×1
openejb ×1
persistence ×1
vaadin ×1
wildfly ×1