我已经在 Spring 应用程序中实现了审核列,当我创建一个新实体时,它可以工作,列已设置,但是当我更新实体时,我发现两个 @Createdby 和 @CreatedDate 设置为 null,我该如何制作这些创建后列不可更改:
@MappedSuperclass
public abstract class Audit implements Serializable {
@CreatedBy
private String createdBy;
@CreatedDate
private Date createdDate;
@LastModifiedBy
private String lastModifiedBy;
@LastModifiedDate
private Date lastModifiedDate;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用PrimeFaces组件gmap,以便能够使用Google地图服务.它适用于我,但我有一个问题.当没有互联网连接时,我的用户界面完全被阻止.有没有办法解决这个问题,通过不渲染gmap万一没有互联网连接?这是我的代码:
<p:gmap id="geoGmap" widgetVar="geoMap" center="#{managedBean.centerGeoMap}" zoom="15" type="ROADMAP" model="#{managedBean.geoModel}" style="width:1000px;height:500px" streetView="false" disableDefaultUI="true" >
<p:ajax event="geocode" listener="#{managedBean.onGeocode}" update="@this" />
</p:gmap>
Run Code Online (Sandbox Code Playgroud)
以下是导入它的脚本:
<script src="https://maps.google.com/maps/api/js?sensor=false" type="text/javascript" ></script>
Run Code Online (Sandbox Code Playgroud) 我有一个带有maven的java ee应用程序,当我构建项目然后部署在目标文件夹上生成的ear时,我尝试注册到应用程序,所以我必须调用locale EJB Session(ConfigUser),我收到以下错误:
javax.naming.NamingException: Lookup failed for 'java:global/myproject-ear/myproject-ejb-1.0/UserFacade!myproject.service.ConfigUser' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: myproject-ear] at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) at javax.naming.InitialContext.lookup(InitialContext.java:411) at javax.naming.InitialContext.lookup(InitialContext.java:411) at org.apache.jsp.index_jsp._jspService(index_jsp.java:79) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411) at
Run Code Online (Sandbox Code Playgroud)
我尝试使用该命令进行部署call asadmin --host localhost --user admin deploy --force "C:\myproject\target\myproject-ear-1.0.ear",我也尝试从glassfish管理控制台进行部署,但问题仍然存在.
当我从netbeans部署时,它工作正常,知道项目是在pom文件中构建的,如下所示:
<modules>
<module>myproject-ear</module>
<module>myproject-ejb</module>
<module>myproject-web</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
这是jsp页面:
Context c = new InitialContext();
ConfigUser configUser = (ConfigUser) c.lookup("java:global/myproject-ear/myproject-ejb-1.0/ConfigUser!myproject.service.ConfigUser");
Run Code Online (Sandbox Code Playgroud) 我正在使用yeoman创建一个项目,当我尝试使用gulp时,我运行了cmd:gulp serve一个错误告诉我我需要旧版本的Node(8.9.4),知道我已经安装了最新版本(10.14) .1)。
因此,我安装了nvm来更改节点版本,必须将其设置为path C:\,然后运行成功:nvm install 8.9.4当我尝试使用它时:nvm use 8.9.4,它始终是所使用的最新版本
如果我尝试使用8.10.0,则运行node -v它会告诉我访问被拒绝,与任何node命令相同
我有一种情况,一个实体可以使用另一个实体,它可以被另一个实体使用,所以我定义了一个引用同一实体的ManyToMany关系,所以我可以有listUse和listUsedBy,并且两者都保存在同一个表entity_usage中:
@ManyToMany
@JoinTable(name = "entity_usage",
joinColumns = {
@JoinColumn(name = "id_use", referencedColumnName = "id")},
inverseJoinColumns = {
@JoinColumn(name = "id_used_by", referencedColumnName = "id")})
private List<Entity> listUse;
@ManyToMany
@JoinTable(name = "entity_usage",
joinColumns = {
@JoinColumn(name = "id_use_by", referencedColumnName = "id")},
inverseJoinColumns = {
@JoinColumn(name = "id_use", referencedColumnName = "id")})
private List<Entity> listUsedBy;
Run Code Online (Sandbox Code Playgroud)
例子:实体A可以使用实体B和C,因此实体B和C由A使用.现在我的问题是当我将b和C添加到listUse时,它们会持久保存在entity_usage中,但是当我尝试显示listUsedBy时我必须重新部署我的项目,否则listUsedBy仍然是空的,有没有办法刷新listUsedBy,当没有拥有我的实体时重新部署我的项目.
我已经使用 Spring Data JPA 实现了审计,完全遵循此文档。当我运行应用程序时,一切正常,但是当我将 WAR 部署到 Tomcat 并尝试创建实体时,我在方法中收到错误getCurrentAuditor。
我已经用 keycloak 保护了我的应用程序,所以AuditorAwareConfig我试图获取 keycloak 用户名,调试后我发现它request.getUserPrincipal()是 null :
java.lang.NullPointerException: null
at com.cevital.cirta.util.AuditorAwareConfig.getCurrentAuditor(AuditorAwareConfig.java:20) ~[classes/:0.0.1-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
AuditorAwareConfig:
public class AuditorAwareConfig implements AuditorAware<String> {
@Autowired
private HttpServletRequest request;
@Override
public Optional<String> getCurrentAuditor() {
KeycloakPrincipal<KeycloakSecurityContext> kp = (KeycloakPrincipal<KeycloakSecurityContext>) request.getUserPrincipal();
String userName = kp.getKeycloakSecurityContext().getToken().getPreferredUsername();
return Optional.ofNullable(userName);
}
}
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用 PrimeFaces 6.0。我使用我的页面之一,例如银行 challan。如果用户输入 count 来计算金额和总金额。
<p:column headerText="Denomination">
<h:outputText value="#{bank.denominationAmt}"/>
</p:column>
<p:column headerText="Count">
<p:inputText value="#{bank.count}"/>
</p:column>
<p:column headerText="Amount">
<p:inputText value="#{bank.amt}"/>
</p:column>
....
Run Code Online (Sandbox Code Playgroud)
我需要用户在 javascript 或 primefaces 中输入 count 或 amount 来显示 footerText 中显示的金额总和是否可行?
我正在构建一个 Angular 应用程序PrimeNG。我有一个包含带有输入(数量和价格)的 p 表(产品列表)的表单,当我从对话框中选择第一个产品并输入输入(数量和价格),然后选择第二个产品时,我输了输入的第一个产品的第一个数量和价格。
仅在将带有输入的表格放入表单时才会发生此问题。有没有正确的方法来解决这个问题?我的代码如下。
HTML:
<form #form="ngForm" (ngSubmit)="valider(form)">
<p-table [value]="object.produits" >
<ng-template pTemplate="header">
<tr>
<th>Code Produit</th>
<th>Quantité</th>
<th>Price</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-produit>
<tr [pSelectableRow]="produit">
<td>{{produit.codeProduit}}</td>
<td>
<input type="text" size="10" pInputText name="quantite" [readonly]="action=='show'" pKeyFilter="num" [ngModel]="produit.quantite" (ngModelChange)="produit.quantite = $event;">
</td>
<td>
<input type="text" size="10" pInputText name="prixUnitaire" [readonly]="action=='show'" pKeyFilter="num" [ngModel]="produit.prixUnitaire"(ngModelChange)="produit.prixUnitaire = $event;">
</td>
</tr>
</ng-template>
<ng-template pTemplate="summary">
<button type="button" (click)="showDialogProduit()" pButton label="Ajouter Produit"></button>
</ng-template>
</p-table>
</form>
<p-dialog header="Liste des produits" [(visible)]="dialogProduit" >
<p-table #dt_produits [value]="produits" selectionMode="multiple" [(selection)]="operationCommodities.produits" > …Run Code Online (Sandbox Code Playgroud) java ×4
jpa ×2
primefaces ×2
spring ×2
angular ×1
datatable ×1
forms ×1
glassfish ×1
google-maps ×1
html ×1
java-ee ×1
jsf ×1
jsp ×1
keycloak ×1
many-to-many ×1
maven ×1
node.js ×1
nvm ×1
spring-boot ×1
tomcat ×1