代码之家  ›  专栏  ›  技术社区  ›  Olahzzz

使用JPA获取数据库用户并在Entity属性中设置

  •  0
  • Olahzzz  · 技术社区  · 7 年前

    我是JPA新手。我在数据库中有这些表,其中创建的列不可为null。问题是我有一个约束问题,因为这个值不能为null。

    数据库:Oracle 11G 对数据源使用JNDI 事务表:

    Customer_Id | Amount | Status  | Created_BY   | Created_Date  |
    1           | 10    | Pending  |   (USER)     |  (new Date()) |
    

    在我的Java代码中,我没有设置CreatedBy和attributes,因为它们在我的数据库脚本中是默认的,其中date是SYSDATE。

    Customers customer = new Customer();
    customer.setCustomerId(12324);
    customer.setAmount(10);
    customer.setStatus(StatusType.PENDING.getName());
    customer.setCreatedDate(new Date());
    

    我是否可以使用JPA从数据库中访问用户?不使用本机查询“Select user from Dual”。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Olahzzz    7 年前

    我可以通过下面的代码获得连接用户名。

     EntityManagerFactoryInfo info = (EntityManagerFactoryInfo) em.getEntityManagerFactory();
     String userName = info.getPersistenceUnitInfo().getNonJtaDataSource().getConnection().getMetaData().getUserName();